Linux进程通信之FIFO如何实现
发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,这篇文章给大家分享的是有关Linux进程通信之FIFO如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。FIFO通信(first in first out)FIFO 有
千家信息网最后更新 2025年01月29日Linux进程通信之FIFO如何实现
这篇文章给大家分享的是有关Linux进程通信之FIFO如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
FIFO通信(first in first out)
FIFO 有名管道,实现无血缘关系进程通信。
创建一个管道的伪文件
a.mkfifo testfifo 命令创建
b.也可以使用函数int mkfifo(const char *pathname, mode_t mode);
内核会针对fifo文件开辟一个缓冲区,操作fifo文件,可以操作缓冲区,实现进程间通信-实际上就是文件读写
man 3 mkfifo
#include#include int mkfifo(const char *pathname, mode_t mode);
注意事项:
FIFOs
Opening the read or write end of a FIFO blocks until the other end is also opened (by another process or thread). See
fifo(7) for further details.
打开fifo文件时候,read端会阻塞等待write端open,write端同理,也会阻塞等待另外一段打开。
代码示例:
file_w.c 写端
#include#include #include #include #include #include #include #include int main(int argc, char *argv[]) { if(argc != 2) { printf("./a.out filename1\n"); return -1; } printf("begin open w\n"); int o_ret = open(argv[1], O_WRONLY); printf("end open w\n"); char buf[256]; int num = 0; while (1) { memset(buf, '\0', sizeof(buf)); sprintf(buf, "xiaoming--%d", num++); printf("strlen(buf) = %d\n", strlen(buf)); write(o_ret, buf, strlen(buf)); sleep(1); } close(o_ret); return 0;}
file_r.c 读端
#include#include #include #include #include #include #include #include int main(int argc, char *argv[]) { if(argc != 2) { printf("./a.out filename1\n"); return -1; } printf("begin open r\n"); int o_ret = open(argv[1], O_RDONLY); printf("end open r\n"); char buf[256]; int num = 0; while (1) { memset(buf, '\0', sizeof(buf)); read(o_ret, buf, sizeof(buf)); printf("strlen(buf) = %d\n", strlen(buf)); printf("read is%s\n", buf); } close(o_ret); return 0;}
什么是Linux系统
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
感谢各位的阅读!关于"Linux进程通信之FIFO如何实现"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
通信
文件
进程
系统
操作系统
内容
更多
管道
篇文章
缓冲区
缓冲
阻塞
不错
实用
有名
自由
事项
代码
任务
内核
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东网络安全信息体验馆
pc机软件开发
用户软件开发
我的世界1.14服务器地址id
我的世界基岩版模组生存服务器
猫小胖服务器绝育
常用英文数据库
招聘计算机网络安全员
数据库一般分几类
安靖 网络安全
企业级软件开发行业背景
网络安全保卫是什么专业
工行软件开发中心2017
比对两个表格的数据库
即时通讯软件开发哪家产品好
怎么报名网络安全大赛
台式机用服务器内存效果怎样
硕士论文查重对比数据库
软件开发体验课主题
服务器散热不好会导致黑屏吗
软件开发类论文目录
南京网络安全股新
计算机网络技术是什么编号
psv重建安全数据库
山西软件开发品质保障
黑客都是攻击服务器吗
如何创建数据库不指定任何文件
网站哪个服务器好
淮安软件开发咨询报价
基金软件开发财务助理