[Linux管道和IPC]在兄弟进程中使用管道-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

[Linux管道和IPC]在兄弟进程中使用管道

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define BUFSIZE 4096  //定义一个最大的读写空间
int main(void)
{
    int fd[2];
    char buf[BUFSIZE] = "hello!I am your  brother!\n";        // 缓冲区
    pid_t pid;
    int len;
    if ( (pipe(fd)) < 0 )           //创建管道
     {
        perror("pipe failed\n");
     }
    if ( (pid = fork()) < 0 )        //创建第一个子进程
     {
        perror("fork failed\n");
     }
    else if ( pid == 0 )            //子进程
    {
        close ( fd[0] );                //关闭不使用的文件描述符
        write(fd[1], buf, strlen(buf));   //发送字符串
        exit(0);
     }
    if ( (pid = fork()) < 0 )             //创建第二个子进程
     {
        perror("fork failed\n");
     }
    else if ( pid > 0 )             //父进程
    {
        close ( fd[0] );
        close ( fd[1] );
        exit ( 0 );
     }
    else                       //第二个子进程中
    {
        close ( fd[1] );                  //关闭管道文件描述符
        len = read (fd[0], buf, BUFSIZE);  //读取消息
        write(STDOUT_FILENO, buf, len); //将消息输出到标准输出
        exit(0);
     }
    return 0;
}

分享名称:[Linux管道和IPC]在兄弟进程中使用管道
当前网址:http://kswsj.cn/article/iihpsi.html

其他资讯