一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux管道通信C語言編程示例

Linux管道通信C語言編程示例

2019-09-09 16:00Linux之家 Linux

這篇文章主要介紹了Linux管道通信C語言編程示例,本文講解了管道的定義,并分別講解了無名管道和有名管道:FIFO,需要的朋友可以參考下

一、定義

管道是單向的、先進先出的。它將一個程序的輸入和另一個程序的輸出連接起來。數據被一個進程讀出后,將被從管道中刪除。分為無名和有名管道兩種。前者用于父進程和子進程間的通信,后者用于同一系統的兩個進程間通信。
 
二、無名管道

 

復制代碼

代碼如下:


int pipe(int fd[2]);


   其中,fd[0]用于讀管道,fd[1]用于寫管道。若成功則返回零,否則返回-1,錯誤原因存于errno中。

 

Linux管道通信C語言編程示例

三、有名管道:FIFO

 

復制代碼

代碼如下:


int mkfifo(const char* pathname,mode_t mode)


open時使用O_NONBLOCK,訪問要求無法滿足則立即出錯返回。erron是ENXIO。
 
例子:

復制代碼

代碼如下:


fread.c //讀文件</p> <p>#include<errno.h>
#include<memory.h>
#define FIFO "myfifo" 
main(){
int fd;
char buff[100];
if(access(FIFO,F_OK) == -1){
mkfifo(FIFO,0777); 
}
fd=open(FIFO,O_RDONLY|O_NONBLOCK); //設置非阻塞打開,否則當沒有輸入時,會阻塞在read函數 </p> <p> int num;
while(1){
memset(buff,'\0',100); //如不清空最后的字符會出現亂碼
if((num=read(fd,buff,100))==0){
printf("waiting.....\n");
sleep(1);
continue;
}
printf("read %d in fifo , it's %s",num,buff);
sleep(1);
}
}</p> <p>
fwrite.c //寫文件</p> <p> </p> <p>#include<stdio.h>
#include<fcntl.h>
#include<memory.h>
#define FIFO "myfifo"
main(){
int fd;
char buff[100];
memset(buff,'\0',100);
scanf("%s",buff);
if(access(FIFO,F_OK) == -1){
mkfifo(FIFO,0777);
}
fd=open(FIFO,O_WRONLY);
int num;
num=write(fd,buff,strlen(buff));
printf("%d char is written! It's %s\n",num,buff);
}


4、管道關閉:用close()關閉相應的文件描述符即可。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91久久国产视频 | 国产欧美日韩一区二区三区在线 | 欧美日韩免费一区二区在线观看 | а天堂中文最新版在线官网视频 | 精品久久久久久无码人妻国产馆 | 国产成人精品男人的天堂538 | 久久精品国产久精国产果冻传媒 | 12-14娇小videos| 免费看视频网站 | 草溜短视频| 日韩在线天堂免费观看 | 日日爽 | 99精品视频在线观看免费 | 猛h辣h高h文湿校园1v1 | bdsm中国精品调教 | 青青青在线视频播放 | 成年人福利视频 | 免费黄色片在线观看 | 四虎影视免费观看免费观看 | 小sao货ji巴cao死你视频 | 疯狂激吻添下边小说 | 向日葵视频app下载18岁以下勿看 | 毛片网站免费观看 | 无码国产成人午夜在线观看不卡 | 污污免费 | 国内久久精品 | 1717she精品视频在线观看 | 韩国三级 720p| 国产小青蛙 | 女同色图 | 欧美视频一 | 99日影院在线播放 | 无遮无挡免费视频 | 国产3级在线 | 91久久综合九色综合欧美98 | 国产 日韩欧美 | 国产成人激情 | 国产女主播福利在线 | 91制片厂果冻传媒首页 | 亚洲系列国产精品制服丝袜第 | 91porn在线观看国产 |