Почему argv заканчивается нулевым указателем?

На man-странице execve() сказано, что argv — это список строковых аргументов, заканчивающийся нулевым указателем. Но для чего нужен НП? Я имею в виду, что количество аргументов хранится в argc, так какой смысл в нулевом указателе?


person helpermethod    schedule 22.02.2010    source источник


Ответы (2)


execve не принимает argc в качестве параметра, он вручную подсчитывает аргументы, которые вы указываете как argv, чтобы определить сам argc.

Это сделано для совместимости с execl, который принимает переменное количество аргументов вместо массива argv.

person SoapBox    schedule 22.02.2010
comment
О, простите, теперь я вижу это. Теперь это имеет смысл. - person helpermethod; 22.02.2010

Счетчик для argc вычисляется путем поиска этого NULL.

person Ignacio Vazquez-Abrams    schedule 22.02.2010