关于有名管道的 读写问题 请 大虾们帮我看看    。。。。。
/* 
                   两个进程   :      一个在接到   sigalrm   信号   后向   管道里写入一个随机数和系统时间,另一个读出并写进文件,父进程等待   2分钟后   发出终止信号      结束。*/ 
 并显示   
 #include    <stdio.h>  
 #include    <stdlib.h>  
 #include    <errno.h>  
 #include    <sys/types.h>  
 #include    <sys/wait.h>  
 #include    <time.h>  
 #include    <sys/stat.h>  
 #include    <fcntl.h>  
 #include    <unistd.h>  
 #define   filename    "myfifo " 
 void   w_fifo(); 
 void   r_fifo();   
 int   main(int   argc,   char   *argv[]) 
 { 
                         int   pid1,pid2; 
                         int   i=0; 
                         int   file;   
                         if(   (file   =   mkfifo(filename,O_CREAT|O_EXCL))    <   0) 
                                                 perror( "mfifo ");   
                         if((   pid1   =   fork()   )    <   0) 
                         { 
                                                 perror( "fork "); 
                                                 exit(1); 
                         } 
                         else   if(   pid1   ==   0) 
                         { 
                                                 signal(SIGALRM,   w_fifo); 
                                                 alarm(1); 
                                                 pause(); 
                         } 
                         /////////////////////////////////////////////////// 
                         if((   pid2   =   fork()   )    <   0) 
                         { 
                                                 perror( "fork "); 
                                                 exit(1); 
                         } 
                         else   if(   pid2   ==   0) 
                         { 
                                                 r_fifo();   
                         } 
                         ///////////////