四、进程间通信(IPC)
2022/4/27 7:14:37
本文主要是介绍四、进程间通信(IPC),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、概述
进程间通信(IPC)主要包括以下内容:
- 数据传输。
- 资源共享。
- 事件通知。
- 进程控制
linux系统下的ipc:
- 管道:包括有名管道和无名管道。
- 信号
- FIFO
- 消息队列
- 信号量
- 共享内存。
二、进程间通信的方式
1、无名管道
用于具有亲缘关系的进程间通信(常见的就是父子进程),数据只能单向流动。
(1)创建管道
#include<unistd.h> int pipe(int pipefd[2]);
参数:
- pipefd[2]:参数为两个文件描述符,一个读文件描述符,一个写文件描述符。
返回值:
- 成功返回0
- 失败返回-1,且errno错误码被设置。
(2)特点:
-
特殊文件(没有名字),无法使用open,但是可以使用close.
-
只能通过子进程继承文件描述符的形式来使用。
-
write和read操作可能会zuse进程。
-
所有文件描述符被关闭之后,无名管道被销毁。
(3)使用步骤
-
父进程pipe无名管道
-
fork子进程。
-
close无用端口。
-
write/read读写端口。
-
close读写端口。
这篇关于四、进程间通信(IPC)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享