Имитировать команду "cat>" в c (LINUX / UNIX) - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужно имитировать команду: "cat>", используя c с exe c family.

Я не могу найти способ сделать это, потому что он не распознает символ '>' Я уже пробовал использовать execlp, но, возможно, мой синтаксис неправильный.

Спасибо за помощь! оценили.

1 Ответ

0 голосов
/ 13 апреля 2020

Команда cat. > интерпретируется оболочкой, перенаправляя стандартный вывод команды в указанный c файл.

Таким образом, вам необходимо подключить стандартный вывод (дескриптор файла 1) процесса, выполняющего cat в файл:

/* emulating `cat >file` */
int fd = open("file", …);
/* use our own fd 1 */
dup2(fd, 1);
close(fd);
/* with new stdout, exec `cat` */
exec("cat");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...