zoukankan      html  css  js  c++  java
  • 无名管道通讯编程

    创建无名管道用于父子间进程通信。

    1、无名管道概念:无名管道又称pipe,是Linux所支持的IPC方式的一种,它具有以下特点:

    1)只能用于具有血缘关系的进程之间。

    2)属于半双工的通信模式,具有固定的读端和写端

    3)是一种特殊的文件,存在于内存中,可通过read、write对其操作。

    2、无名管道的用法

    因为pipe存在于内存中,所以无法像操作普通文件那样通过指定路径来打开文件。通常的做法是在父进程中创建管道,再创建子进程。由于子进程继承了父进程打开的文件描述符,所以父子进程就可以通过创建的管道进行通信。

    为了在父进程中创建管道,需要先定义一个包含两个元素的整型数组,用来存放管道读端和写端对应的文件描述符。该数组在创建管道时作为参数传递。数组的第一个元素固定代表管道的读端,第二个元素代表写端。对于一个进程来说,只会用到其中一个。

    3、创建一个无名管道--pipe

    头文件:#include<unistd.h>

    原型:int pipe(int fd[2])

    参数说明:fd[2]:管道的2个文件描述符,管道创建后,可以直接操作这两个文件描述符,其中fd[0]代表读端(管道头),fd[1]代表写端(管道尾)

    返回值:成功返回0,失败返回-1.

  • 相关阅读:
    or具体点vc
    异常 中断 实现
    int 0x80 系统调用实现
    方便查看 linux/kernel/sched.c
    第五周课堂笔记1th
    第四周课堂笔记4th
    第四周课堂笔记3th
    第四周课堂笔记2th
    第四周课堂笔记1th
    第三周课堂笔记4thand5th
  • 原文地址:https://www.cnblogs.com/gary-guo/p/5557521.html
Copyright © 2011-2022 走看看