Вызов exec с переменным числом аргументов? - PullRequest
4 голосов
/ 05 марта 2011

У меня есть программа, которая отключает другие процессы. Аргументы моей программы включают имя процесса, который должен быть разветвлен, наряду с любыми аргументами.

Это означает, что когда я выполняю вызов exec (), мне нужно иметь возможность обрабатывать сколько угодно аргументов.

Есть идеи?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 05 марта 2011

Функция execv получает указатель на массив аргументов.

Как и в main, последний элемент в массиве должен быть нулевым указателем.

1 голос
/ 06 марта 2011

Альтернативно, execl() принимает переменное количество аргументов, с указателем NULL в конце списка.Однако вам, вероятно, следует использовать execv(), так как он намного чище;varargs в C можно считать только безобразным хаком (посмотрите на (файлы, на которые указывает) иногда /usr/include/varargs.h, если осмелились!)

...