日期:2014-05-16  浏览次数:20639 次

关于有名管道的 读写问题 请 大虾们帮我看看 。。。。。
/*
            两个进程   :     一个在接到   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();

                }
                ///////////////