进程间通信:管道及命名管道(代码实现)

本文详细介绍了管道的特性,包括半双工、父子进程或兄弟进程间通信、独立文件系统等,并阐述了管道的读写规则和生命周期。同时,讨论了使用管道时需要注意的四种情况。此外,还提及了命名管道(FIFO),它是无名管道的扩展,允许不相关进程通过路径进行通信。文章通过代码示例展示了如何创建和使用管道及命名管道。
摘要由CSDN通过智能技术生成

管道:1.管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;

            2.只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);

            3.单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,                  并且只存在与内存中;

            4.数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据;

            5.管道通信是于流式符的;

            6.管道的生命周期是随进程的;

            7.管道已经给进程提供了同步与互斥;



pipe:


 当一个管道建立时,它会创建两个文件描述符pipefd[0]和pipefd[1]。其中pipefd[0]固定用于读管道,而pipefd[1]固定用于写管道,一般文件I/O的函数都可以用来操作管道。


测试pipe的大小

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值