Основное использование execlp () в C - PullRequest
0 голосов
/ 16 декабря 2011

Итак, мне дали этот код:

execlp("sh", "sh", "-c", string, (char*) 0);

В классе, и сказал, чтобы udnerstand это. Я искал execlp API как сумасшедший, но я все еще не до конца понимаю, что делает этот код.

Моя лучшая догадка: "sh" - это путь к файлу

"- c" - аргумент

строка является командой

(char *) 0 - нулевой терминатор.

Я не могу понять, почему в коде есть два экземпляра "sh": Я догадывался, что -c означает копирование и что команда выполняет копирование из одного файла в другой, используя строковую команду, но я не на 100% в этом.

Любые разъяснения будут с благодарностью. Спасибо.

1 Ответ

3 голосов
/ 16 декабря 2011

Первый аргумент - имя файла для выполнения (в данном случае это команда sh). Первым аргументом для него должно быть имя исполняемого файла (отсюда и повторяющееся «sh»), -c - это еще один аргумент для sh exe, который говорит ему читать команды из командной строки. Строка - это (я предполагаю) команды, которые должен выполнить sh, а (char *) 0 это просто конечный маркер.

Дайте мне знать, если я оставлю то, что вы хотели объяснить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...