Имеется такой код
int main()
{
.......
.......
.......
while(1)
{
sleep(5);
pid =fork();
if (pid <0)
{
fprintf(stderr, "Fork failed\n");
return -1; }
if (pid == 0)
{
close(Pipes[0]);
dup2(Pipes[1],1);
close(Pipes[1]);
execvp(first_com[0], first_com);
fprintf(stderr,"couldn't execute:%s\n",first_com[0]); perror("execvp");
return -1;
}
else
{
close(Pipes[1]);
dup2(Pipes[0],0);
close(Pipes[0]);
execvp(sec_com[0], sec_com);
fprintf(stderr,"couldn't execute: %s\n", sec_com[0]);
perror("execvp");
return -1;
}
}/* end while */
..............
..............
exit(0);
} /* end main */
Это схема такой команды >$ cat /etc/passwd | wc -l
всё работает нормально только нет бесконечного цикла програма
печатает кол-во строк в файле и заверщается
Почему так происходит и как сделать что бы это работало
в цикле?