Я знаю, что execvp
может использоваться для выполнения простых команд следующим образом:
char* arg[] = {"ls", "-l", NULL};
execvp(arg[0],arg);
Я хочу знать, что происходит здесь, когда я запускаю execvp
. В man-странице говорится: execvp
заменяет изображение образа процесса новым. Однако здесь я выполняю команду, а не исполняемый файл.
Чтобы быть конкретным, скажем, есть команда, которая специально требует ввода, например. Кот. Если у меня есть текстовый файл text.txt, который содержит имя файла, ожидаемое для cat, и я перенаправляю stdin к файловому потоку файла, будет вывод execle("cat","cat",NULL)
или execvp("cat", arg)
(очевидно, где arg хранит "cat"
и NULL
) приведет к выводу в консоли, как cat /filename
? Моя интуиция заключается в том, что я должен прочитать файл и, возможно, проанализировать его для хранения аргументов в arg. Однако я хочу убедиться.
Спасибо заранее!