Могу ли я передать argv из main в execv?

Функция execv()ожидает массив из строк с завершением NULL, но не принимает количество аргументов. Он использует контрольное значение (указатель NULL), чтобы определить, когда заканчивается массив.

На справочной странице для execv()указано...

Первый аргумент по соглашению должен указывать на имя файла связанный с исполняемым файлом. Массив указателей должен завершаться указателем NULL.

... поэтому мой вопрос....

Я хочу передать argvиз main()в execv().

Могу ли я быть уверен, что argv, поступающий в main, завершается нулевым указателем? То есть могу ли я быть уверен, что argv[argc] == NULLили мне нужно выделить свой собственный массив char*размером argc+ 1 и поместить NULLв индекс argc?

Если я могу быть уверен, это где-нибудь задокументировано?

Спасибо, ~Eric

5
задан dwalter 16 May 2012 в 13:48
поделиться