Я пытался использовать это и это , но не смог сделать это правильно (обратите внимание на ссылки, прежде чем ссылаться на него как на возможный дубликат).
В моей программе я пытаюсь запустить программу, используя текстовый файл в качестве входных данных и перенаправляя вывод программы в новый файл.
Вот мой код:
if (fork() == 0) {
char *args[]={"program",">","output.txt",NULL};
int fd = open("/input.txt", O_RDONLY);
dup2(fd, 0);
execvp("program",args);
return 0;
}
program.c
- это моя программа, которую я пытаюсь запустить (не моя основная программа) /input.txt
- это файл, который я хочу использовать в качестве ввода для моего program.c
, а output.txt
- это файл, который я хочу перенаправить на выходпрограммы, чтобы я знал, что для перенаправления вывода моей программы я должен использовать programname>outputfile
.
Но я не могу заставить его работать, я думаю, что я что-то не так делаю с args array
.Как правильно отправить input.txt
в качестве ввода для program.c
и перенаправить его вывод на output.txt
?(обратите внимание, что моя основная программа не program.c
)
Любая помощь будет оценена