LINUX.ORG.RU

Запуск с несколькими параметрами


0

0

При использовании функции execlp(...) в нее нужно передать путь или название проги (тогда ищет в $PATH), параметры если надо и "\0".

А как быть если нам не известно кол-во параметров заранее. На дали строку "proga -first=0 -second=1 ...", кол-во параметров конечно можно посчитать, по ведь в ф-и все жестко ("proga", "first=0", "=second=0")

Как поступают в таких случаях?

anonymous

Все не так, как ты написАл.Почитай man execlp.

Ты ей передаешь сколько надо параметров, а в конце пихаешь NULL:

execlp("proga", "proga", "-first=0", "-second=1", ... NULL);

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Ну да.
В простом случае у нас 50 параметров, вот мы и передаем все 50 в функцию.

В в реальном неизвестно. Так как писать для неизвестного кол-ва параметров?

anonymous
()
Ответ на: комментарий от anonymous

В таком случае нужно юзать execvp -- у нее второй аргумент -- массив строк

aa5779
()
Ответ на: комментарий от anonymous

execv ili execvp dolzhny po-idee reshit' etu problemu. man execv man execvp

int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]);

Contemplator

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.