日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

linux进程间通信:FIFO实现进程间的双向通信

發布時間:2023/11/27 生活经验 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux进程间通信:FIFO实现进程间的双向通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

fifo的雙向通信的方式如下圖:
兩個進程間的通信需要兩個命名管道,分別處理一個進程的讀和寫

導致這種通信方式出現的根因還是由于fifo的阻塞讀和阻塞寫,所以這里需要使用兩個管道對讀寫進行分別處理。
同時因為管道傳輸的數據為流式數據,則無法對數據進行指定標記(數據的發送者,接受者,大小。。。)。


SERVER端代碼如下:

/*************************************************************************> File Name: server.c> Author: > Mail: > Created Time: 三  9/25 08:34:44 2019************************************************************************/#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>#define FIFO_SERVER "fifoserver"
#define FIFO_CLIENT "fifoclient"
int main()
{mkfifo(FIFO_SERVER,0644);mkfifo(FIFO_CLIENT,0644);int server_fd,client_fd,ret;char server_buf[100], client_buf[100];ret = fork();if (ret == -1) {printf("fork failed\n");_exit(-1);}//服務端的子進程用來寫else if (ret == 0) {server_fd = open(FIFO_SERVER,O_WRONLY);if (-1 == server_fd) {printf("open FIFO_SERVER failed !\n");_exit(-1);}while(1) {memset (server_buf , 0 ,100);scanf("%s",server_buf);write(server_fd,server_buf,strlen(server_buf));}close(server_fd);}//服務端的父進程用來讀else {client_fd = open(FIFO_CLIENT,O_RDONLY);if (-1 == client_fd) {printf ("open FIFO_CLIENT failed \n");_exit(-1);}while (1) {memset(client_buf ,0 ,100);//不斷if (read(client_fd, client_buf, 100) > 0) printf("server : %s\n",client_buf);/*else {printf("read client_fd failed \n");_exit(-1);}*/}close(client_fd);} return 0;
}

CLIENT端代碼如下:

/*************************************************************************> File Name: server.c> Author: > Mail: > Created Time: 三  9/25 08:34:44 2019************************************************************************/#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>#define FIFO_SERVER "fifoserver"
#define FIFO_CLIENT "fifoclient"
int main()
{//創建管道mkfifo(FIFO_SERVER,0644);mkfifo(FIFO_CLIENT,0644);int server_fd,client_fd,ret;char server_buf[100], client_buf[100];ret = fork();if (ret == -1) {printf("fork failed\n");_exit(-1);}//客戶端的子進程用來讀else if (ret == 0) {server_fd = open(FIFO_SERVER,O_RDONLY);if (-1 == server_fd) {printf("open FIFO_SERVER failed !\n");_exit(-1);}while(1) {memset (server_buf , 0 ,100);if (read(server_fd,server_buf,100) > 0) {printf("client:%s\n",server_buf);}/*else {printf("read from server_fd failed \n");_exit(-1);}*/}close(server_fd);}//父進程用來寫else {client_fd = open(FIFO_CLIENT,O_WRONLY);if (-1 == client_fd) {printf ("open FIFO_CLIENT failed \n");_exit(-1);}while (1) {memset(client_buf ,0 ,100);scanf("%s",client_buf);write(client_fd, client_buf, strlen(client_buf)); }close(client_fd);} return 0;
}

運行結果如下:

總結

以上是生活随笔為你收集整理的linux进程间通信:FIFO实现进程间的双向通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品无码一区二区三区三 | 日本www高清 | 国产伦精品一区二区三区四区免费 | 国产精品成人免费精品自在线观看 | 一本大道一区二区 | 国产污污在线观看 | 春色激情 | 真实的国产乱xxxx在线 | 国产偷人妻精品一区 | 午夜视频一区二区三区 | 91精品国产日韩91久久久久久 | 天天艹天天操 | 女人喷潮完整视频 | 蜜桃网站| 中国一级片黄色一级片黄 | 国产精品国产三级国产aⅴ无密码 | 人成亚洲 | 久久久噜噜噜久久久 | 精品人妻一区二区三区四区在线 | 99爱视频在线观看 | 日本人妻一区二区三区 | 亚洲国产日韩欧美一区二区三区 | 五月婷婷六月综合 | 91亚洲网站 | 国产乱人乱偷精品视频 | 一本加勒比hezyo黑人 | 亚洲av日韩av永久无码下载 | 亚洲免费高清 | 日韩精品一区二区免费视频 | 成人做受黄大片 | 国产日产亚洲系列最新 | 久久久97 | 免费在线观看av | 天天天天天天天干 | www.四虎在线观看 | 99久久久无码国产精品 | 久久人人爽人人爽人人 | 凹凸福利视频 | 老司机深夜福利视频 | 人人插人人射 | 手机在线一区二区三区 | 日日艹 | 娇小萝被两个黑人用半米长 | 91超碰人人 | 日韩毛片高清在线播放 | 欧美操操 | 亚洲综合大片69999 | 日韩欧美中文字幕一区 | 亚洲AV无码国产精品播放在线 | 992av| se综合 | 精品女同一区二区三区 | 91亚洲影院| 国产特黄大片aaaa毛片 | 黄av资源| 精品久久久久久久无码 | 青青国产精品视频 | www.五月.com | 超碰在线观看91 | 最新天堂在线视频 | 欧美美女性生活视频 | 午夜激情导航 | 99爱视频在线观看 | 久久久久无码精品 | 黄色电影在线视频 | 四级毛片 | 麻豆啪啪 | 国产一区二区av在线 | 精品国产传媒 | 日本久久精品 | 污视频网站免费观看 | 免费日皮视频 | 日韩精品一区二区三区无码专区 | 欧美一区二区三区久久综合 | 看91 | 色永久| 欧美网站在线观看 | 一卡二卡三卡在线 | 亚洲欧洲日韩av | 国产伦精品一区二区三区视频孕妇 | 91免费福利视频 | 欧美日本在线视频 | 欧美精品videos另类 | 国产精品三级在线观看无码 | www.狠狠艹| 欧美性受xxxxxx黑人xyx性爽 | 国产精品av在线 | 午夜三级视频 | 国久久久 | 国产亚洲欧美精品久久久www | 亚洲一区二区三区免费 | 91中文字幕在线观看 | 91黄色免费版 | 精品久久久久久中文字幕人妻最新 | 国产一在线观看 | 欧美精品手机在线 | 黄色福利站 | 性欧美在线视频观看 | 成片在线观看 |