Linux有名管道
创始人
2024-11-11 02:39:30
0

有名管道FIFO

有名管道是文件系统中可见的文件,但是不占用磁盘空间,仍然在内存中。可以通过 mkfifo命令创建有

名管道(在共享目录不能使用mkfifo)

有名管道与无名管道一样,在应用层是基于文件接口进行操作

有名管道用于任意进程之间的通讯,当管道为空时,读进程会阻塞。

创建有名管道

mkfifo()

  1. 在shell中使用mkfifo 命令

    mkfifo filename

  2. mkfifo 函数 (在代码中使用其创建管道文件)

例子

一个进程写,一个进程读

首先通过命令创建管道文件:fifo

mkfifo fifo 

read.c

  #include    #include    #include    #include    #include    #include    #include       #define PATH_FIFO "/home/yujiu/fifo"   void if_error(int,char*);   int main(){       int res=0;       res=access(PATH_FIFO,F_OK);       if_error(res,"access");       int fd=open(PATH_FIFO,O_RDONLY);       if_error(fd,"read");       char buf[128];       ssize_t byte =0;       while((byte=read(fd,buf,sizeof(buf)))>0){           printf("read:%s\n",buf);           memset(buf,0,sizeof(buf));       }       close(fd);       return 0;   }   void if_error(int res,char* str){       if(res==-1){           perror(str);           exit(1);       }   }  

write.c

  #include    #include    #include    #include    #include    #include    #include       #define PATH_FIFO "/home/yujiu/fifo"   void if_error(int,char*,int);   int main(){       int res=0;       res=access(PATH_FIFO,F_OK);       if_error(res,"access",-1);       int fd=open(PATH_FIFO,O_WRONLY);       if_error(fd,"read",fd);       char buf[128];       ssize_t byte=0;       while(1){           memset(buf,0,sizeof(buf));           printf("input:\n");           fgets(buf,sizeof(buf),stdin);           buf[strlen(buf)-1]='\0';           byte=write(fd,buf,strlen(buf));           if_error(byte,"write",fd);           if(strcmp(buf,"exit")==0){               break;           }       }       close(fd);       return 0;   }   void if_error(int res,char* str,int fd){       if(res==-1){           perror(str);           if(fd!=-1){               close(fd);           }           exit(1);       }   }  

相关内容

热门资讯

两分钟辅助!阿拉游戏中心辅助工... 两分钟辅助!阿拉游戏中心辅助工具苹果版,总是是有辅助技巧(真实有挂)1、完成阿拉游戏中心辅助工具苹果...
第6分钟辅助!来趣广西友玩脚本... 第6分钟辅助!来趣广西友玩脚本辅助,一直是真的有辅助方法(有挂方法);1、许多玩家不知道来趣广西友玩...
第七分钟辅助!如何下载安装胡乐... 第七分钟辅助!如何下载安装胡乐辅助脚本,真是是有辅助神器(有挂规律)如何下载安装胡乐辅助脚本辅助器是...
第九分钟辅助!新导游正版辅助,... 第九分钟辅助!新导游正版辅助,原来真的是有辅助攻略(有挂规律)一、新导游正版辅助可以开透视的定义与意...
第一分钟辅助!微信开心泉州辅助... 第一分钟辅助!微信开心泉州辅助器,真是是有辅助脚本(有挂透视)1、完成微信开心泉州辅助器辅助器v3....
第7分钟辅助!来几局辅助器,好... 第7分钟辅助!来几局辅助器,好像是真的有辅助技巧(有挂规律)来几局辅助器辅助器是一种具有地方特色的麻...
第四分钟辅助!人海大厅反杀,原... 第四分钟辅助!人海大厅反杀,原来真的是有辅助攻略(发现有挂)1、起透看视 人海大厅反杀辅助软件价格2...
三分钟辅助!湛江吴川0759作... 三分钟辅助!湛江吴川0759作弊,原来有辅助插件(有挂方针)湛江吴川0759作弊能透视中分为三种模型...
第九分钟辅助!威信茶馆透视辅助... 第九分钟辅助!威信茶馆透视辅助工具,确实真的是有辅助软件(有挂技巧)1、金币登录送、破产送、升级送、...
第九分钟辅助!决战手游辅助,真... 第九分钟辅助!决战手游辅助,真是是有辅助工具(有挂技巧)1、游戏颠覆性的策略玩法,独创攻略技巧玩法,...