利用管道实现进程间的单向通信

本文介绍了如何利用管道进行进程间的单向通信。通过理解命名管道的特性和创建方法,创建了名为fifo_c的文件用于输入数据,同时创建fifo文件用于接收并打印数据。通过运行fifo_c和fifo两个进程,向fifo_c输入'你好啊! ! !',实现数据传递。
摘要由CSDN通过智能技术生成

管道是进程间通信的最原始方式,今天我们利用管道的进程间通信,来实现简单的进程间单向通信
首先我们需要了解命名管道的一些特性命名管道的使用与创建
然后创建一个fifo_c的文件来实现输入数据和发送数据

   /*这是一个命名管道的实现,往命名管道中写入数据,并且发送给另一个进程
    * 1. 创建一个命名管道
    *      int mkfifo(const char*pathname,mod_t mod);
    *          pathname:管道的文件路径名字
    *          mod:管道文件的权限
    *          成功返回0, 失败返回-1 
    * 2.打开管道open
    * 3.往管道中写入数据
    * 4.关闭管道文件close 
   */
  #include<stdio.h>
  #include<unistd.h>
  #include<stdlib.h>
  #include<errno.h>
  #include<string.h>
  #include<fcntl.h>//文件操作的头文件
  int main()
  {   
      umask(0);
      //为了防止因为管道文件存在,创建失败
      //unlink("./test.fifo")-----删除文件
      //1.创建命名管道
      if(mkfifo("./test.fifo",0664)<0){
          if(errno==EEXIST){
          //文件存在
          }
          else{
              perror("mkfifo error");
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值