Функция execv()
ожидает массив завершенных строк NULL
, но не принимает количество аргументов. Он использует контрольное значение (NULL
указатель), чтобы определить, когда заканчивается массив.Могу ли я передать argv от main к execv?
Человек страница execv()
государств ...
Первый аргумент, по соглашению, должен указать на имя , связанный с файлом, который выполняется. Массив указателей должен быть прерван указателем NULL.
... поэтому мой вопрос ....
Я хочу передать argv
от main()
к execv()
.
Могу ли я быть уверенным, что argv, который входит в main, заканчивается указателем NULL? То есть, могу ли я быть уверенным, что argv[argc] == NULL
или мне нужно выделить собственный массив char*
размера argc
+ 1 и положил NULL
в индекс argc
?
Если я могу быть уверен, это где-то документировано?
Спасибо, ~ Эрик
Можете ли вы привести источник этого? –
@ ErnestFriedman-Hill Из стандарта, раздел 5.1.2.2.1 (см., Например, http://c0x.coding-guidelines.com/5.1.2.2.1.html) –
Отлично, спасибо! –