Я использую pipe для отправки массива чисел в другой процесс для их сортировки. До сих пор я могу получить результат из другого процесса, используя fdopen. Тем не менее, я не могу понять, как отправлять данные из канала в качестве stdin для другого процесса.put pipe to stdin другой процесс
Вот мой код:
Кстати, как может другой процесс получить ввод? Scanf?int main() { int fd[2], i, val; pid_t child; char file[10]; FILE *f;
pipe(fd); child = fork(); if (child == 0) { close(fd[1]); dup2(fd[0], STDIN_FILENO); close(fd[0]); execl("sort", "sort", NULL); } else { close(fd[0]); printf ("BEFORE\n"); for (i = 100; i < 110; i++) { write(fd[1], &i, sizeof (int)); printf ("%d\n", i); } close(fd[1]); wait(NULL); } }
Я пишу сортировку сам, но благодаря вам, я понимаю, что это основанный на тексте; поэтому, когда я меняю все на строку, он отлично работает :) – babydragon