Linux中进程间的六种通信方式

您所在的位置:网站首页 Linux有哪几种用户 Linux中进程间的六种通信方式

Linux中进程间的六种通信方式

2024-07-14 13:49| 来源: 网络整理| 查看: 265

进程间的通信

每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但是内核空间是每个进程共享的,所以进程之间要通信必须通过内核。进程间的通信方式主要为管道、消息队列、共享内存、信号量、信号、socket。主要理解各种方式的优缺点和适用场景。

1、管道

优点:实现简单 缺点:不适合进程间频繁的通信 底层原理: 例子 ps auxf | grep mysql 上述命令行中的|则是管道,只能单向通信,用完就销毁了,也称匿名管道。 匿名管道的创建需要通过下面的系统调用: int pipe(int fd[2]);//linux下C语言 返回两个文件描述符,fd[0]读入端描述符,fd[1]写入端描述符。匿名管道是特殊的文件,只存在于内存中,不存在于文件系统中。 匿名管道使用场景: 使用fork创建子进程,创建的子进程会复制父进程的文件描述符,这样两个进程就各有fd[0],fd[1]文件描述符。一般情况下,每个进程只能读或者写,如果想实现双向通信则需要创建两个匿名管道。 C++代码:

/* * * 父进程 * * */ cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3