На man-странице execve() сказано, что argv — это список строковых аргументов, заканчивающийся нулевым указателем. Но для чего нужен НП? Я имею в виду, что количество аргументов хранится в argc, так какой смысл в нулевом указателе?
Почему argv заканчивается нулевым указателем?
Ответы (2)
execve
не принимает argc
в качестве параметра, он вручную подсчитывает аргументы, которые вы указываете как argv
, чтобы определить сам argc
.
Это сделано для совместимости с execl
, который принимает переменное количество аргументов вместо массива argv
.
person
SoapBox
schedule
22.02.2010
О, простите, теперь я вижу это. Теперь это имеет смысл.
- person helpermethod; 22.02.2010
Счетчик для argc
вычисляется путем поиска этого NULL.
person
Ignacio Vazquez-Abrams
schedule
22.02.2010