zoukankan      html  css  js  c++  java
  • 无名管道通信

    无名管道通信

    一。核心理论

      1.进程通信方式(IPC)

        (1).通讯的目的: 数据传输,资源共享,通知事件,进程控制   

        (2).通讯的发展:UNIX进程间的通信、基于System V进程间的通信、POSIX进程间通信 

        (3).通信方式 : 无名管道(pipe),有名管道(FIFO),信号(signal), 消息队列, 共享内存, 信号量, 套接字(socket)

      2.管道通信方式(特点)

        (1).管道通讯是单向的,有固定的读端和写端

        (2).数据被进程从管道读出后,在管道中该数据就不存在了

        (3).当进程去读取空管道的时候,进程会阻塞

        (4).当进程往满管道写入数据时,进程会阻塞

        (5).管道容量为64KB (#define PIPE_BUFFERS 16   include/linux/pipe)

      3.无名管道

        在Linux系统中,无名管道一旦创建完成后,操作无名管道等于操作文件。

        无名管道的读端被视作一个文件;

        无名管道的写端也可被视作一个文件。

    二。函数学习(创建子进程,创建管道(fork之前创建),通信)

      1.创建管道     

        函数名:pipe

        函数原型:int pipe(int pipefd[2])

        函数功能:创建无名管道

        所属头文件:<unistd> 

        返回值:成功时:0;

            失败时:-1;

        参数说明:pipefd[0] : 读端fd

             pipefd[1] : 写端fd

      2.关闭管道  exit(0);

      3.读管道   write();

      4.写管道   read();

    三。综合实例

  • 相关阅读:
    字符编码笔记:ASCII,Unicode和UTF8(转)
    如何让vs2005的网站编译成一个DLL
    全力奔跑
    工作心得之再谈“表现”
    IT外企那点事[转载]
    直面奋斗
    C#图片水印代码整理
    常用js代码
    一个很有趣的程序员等级考试题求循环小数
    String.Format(字符串输出格式)
  • 原文地址:https://www.cnblogs.com/lvxiaoning/p/4945062.html
Copyright © 2011-2022 走看看