麻烦大家帮看一个管道的问题
程序名: testmore.c
#include  <unistd.h>
#include  <stdio.h>
#include  <sys/types.h>
#include  <sys/wait.h>
#include  <stdlib.h>
#include  <string.h>
int main(int argc, char * argv[])
{
     char   buf[4096];
     pid_t  child;
     int    fds[2];      
     if (pipe(fds) != 0)
     {
         exit(0);
     }
     if ((child = fork()) < 0)
     {
         exit (0);
     }
     else if(child == 0)
     {
         close(fds[1]);
         if (fds[0] != STDIN_FILENO)
         {
             dup2(fds[0], STDIN_FILENO);
         }
         close(fds[0]);
         execl("/bin/more", "more", 0);
         perror("exec:");
     }
     close(fds[0]);      
     while (fgets(buf, sizeof(buf)-1, stdin) != NULL)
     {
         write(fds[1], buf, strlen(buf));  
     }  
     buf[0] = EOF;
     write(fds[1], buf, strlen(buf));
     wait(NULL);
     return 0;
}
照着UNIX高级编程弄的代码
执行  ./testmore < testmore.c
程序会一直卡在wait(NULL)那里.
并且会有SIGTTOU信号.为什么会有SIGTTOU信号呢, 假如我自己写个写标准输入的程序, 子进程去execl执行, 却没有SIGTTOU
高手帮忙哦.
------解决方案--------------------		自己多调试一下
------解决方案--------------------顶一下,我也想知道~