Как реализовать один поток ввода-вывода в C? т. Е. A> b
Код ниже не передает текст из input.txt в output.txt, как я этого хочу.Как реализовать input.txt> output.txt в C
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
int main(void)
{
int fd = open("/home/ubuntu/workspace/file2.txt", O_WRONLY|O_CREAT);
if (fd < 0)
{
fprintf(stderr, "Failed to open file2.txt for writing\n");
return(EXIT_FAILURE);
}
dup2(fd, 1);
close(fd);
execlp("a.out", "a.out", "file1.txt", NULL);
}
Что делает код для 'a.out' do? Каково текущее поведение вашей программы? Я предлагаю вам проверить, действительно ли «excelp» преуспел или нет. Обычно текущий каталог ('.') не находится в PATH. Таким образом, попытка exec 'a.out' в этом случае потерпит неудачу. – kaylum
Попробуйте использовать 'cat' вместо' a.out'. – Barmar
Зачем вам нужно это делать с помощью 'execlp()'? Вы можете просто написать простой цикл в C, который читается из 'file1.txt' и записывается в файл' file2.txt'. – Barmar