Я пытаюсь протолкнуть некоторые текстовые файлы через канал, который был дублирован через стандартный сортировщик.Это работает, но это не завершается естественным образом (Интересно, что, кажется, нажатие кнопки «ввод» делает это).
//child
if(rc == 0)
{
alarm(60);
close(stdin_pipe_fds[1]);
close(0);
dup(stdin_pipe_fds[0]);
close(stdin_pipe_fds[0]);
execve("/usr/bin/sort", argv, NULL);
exit(0);
}
//Parent
if(rc >0)
{
alarm(60);
close(stdin_pipe_fds[0]);
close(stdout_pipe_fds[1]);
close(stderr_pipe_fds[1]);
while(fscanf(coolFile, "%1023s", newWord) ==1)
{
if(strcmp(newWord, "foobar") != 0)
{
write(stdin_pipe_fds[1], newWord, (strlen(newWord)+1));
}
}
if(argc == 2)
{
write(stdin_pipe, argc[2], 2);
}
if(argc == 3)
{
write(stdin_pipe, argc[3], 2);
}
}
}
Есть идеи?