Использование dup2 и execvp в c

Я пишу программу, которая открывает 2 файла (файл1 только для чтения и файл2 только для записи), затем открывает дочерний процесс, заменяет stdin с file1 а также stdout с file2 с помощью dup2() а затем запускает некоторую команду оболочки (sort,cat,tr или что-то в этом роде). Текст должен прибыть из stdin(file1) и быть написано stdout(file2), Вот код, который у меня есть. Это не полный код, это просто функция, которую вызывает дочерний процесс.

void childProcess(int fd[],char* arguments[])
{
  int f1=atoi(arguments[0]); //gets file descriptor number of file1
  int f2=atoi(arguments[1]);  //fd number of file2
  dup2(fd[f1],0);    //changes stdin to file1
  dup2(fd[f2],1);    //changes stdout to file2

  char* myText[1024];


 //not sure how to get the content of stdin into myText

  char*execArgs[] = {"cat",myText,NULL};

  execvp("cat",execArgs);

}

Итак, две проблемы, которые у меня есть: я не знаю, как получить весь stdin(file1) в myText а также, программа говорит:

cat: no such file or directory.

Пожалуйста помоги.

0 ответов

Другие вопросы по тегам