一、Linux下进程间通信方式总结(管道篇)
IPC全称interprocess communication,即进程间通信。在shell下可以输入命令ipcs来查看。
[toor@zcm ipc]$ ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
------ Semaphore Arrays --------
key semid owner perms nsems
------ Message Queues --------
key msqid owner perms used-bytes messages
总结起来linux下进程间通信有以下几种方式:
1、管道(pipe)
2、共享队列(queue)
3、信号量(semaphore)
4、共享内存(shared memory)
5、套接字(socket)
管道
管道是UNIX系统IPC的最古老形式。它提供了进程之间的一种单向通信的方法
管道分为有名管道和有名(匿名)管道。
无名管道在父子进程中应用,有名管道是一个文件可以被系统中的所有进程使用来达到进程通信的目的。
无名管道占用两个文件描述符,只能在父子进程间使用。所以使用匿名管道就会调用fork函数创建父子进程,
可以说无名管道存在于内存中。
调用函数pipe创建。
------------------------------------------------------------------------------------------------
#include <unistd.h>
int pipe(int fildes[2]);
------------------------------------------------------------------------------------------------
pipe函数可以得到两个文件描述符:
其中fildes[0]直接可以read,即为读而打开。
fildes[1]直接可以write,即为写而打开。
例如:子进程通过管道发送数据hello父进程接受并打印输出。
------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int fd[2];
char buff[10];
int r;
pipe(fd);
if(fork() == 0)
{
close(fd[0]);//关闭读端
write(fd[1], "hello\n", 6);
return 0;
}
else
{
close(fd[1]);//关闭写端
r = read(fd[0], buff, 6);
buff[r] = '\0';
printf("%s", buff);
}
return 0;
}
------------------------------------------------------------------------------------------------
分享到:
相关推荐
IPC测试配置工具是一款用于网络摄像机的远程配置和管理的软件。主要功能是探测设备,配置网络,配置单台设备,一键设IP,升级设备,以及显示各机器的端口等等,让你很方便的在PC端管理这些IPC设备。 设备发现:发现...
IPC是一个C 库,它使用Windows上的共享内存提供进程间通信
不过话虽这样说,但我个人认为这些文章讲解的并不详细,对于第一次接触ipc$的菜鸟来说,简单的罗列步骤并不能解答他们的许多迷惑(你随便找一个hack论坛搜一下ipc,看存在的疑惑有多少). 因此我写了这篇相当于解惑的教程....
vue_ipc 一个用于vue +电子的IPC渲染插件,您可以像ajax一样简单地与电子主进程进行通信。安装npm run install vue_ipc# oryarn add vue_ipc用法首先,导入您的Vue项目: // main.js import Vue from 'vue'import ...
android IPC及原理简介 Linux 系统中进程间通信的方式有:socket, named pipe,...Binder通信操作类似线程迁移(thread migration),两个进程间IPC看起来就象是一个进程进入另一个进程执行代码然后带着执行的结果返回。
一个基于消息的简单IPC客户端/服务器,可通过套接字和TCP进行双向通信。 特征 承诺 用于本地通信的Unix / Windows套接字 TCP用于远程通讯 支持多个客户 支持请求响应,调查和广播 支持同步zlib-stream(需要安装“ ...
设备控制器现在必须能够运行同性质最佳的第三方软件。这使得PLC或PAC不再受青睐,IPC一跃成为新宠儿。
第一届IPC LAYOUT设计大赛获奖作品16.3版本
华为IPC 挺坑爹的,只有一个开发指南文档,文档中是C++的代码片断,本demo用C#实现,目前只完成了播放功能,人脸识别及比对功能还在开发中。 华为IPC 挺坑爹的,只有一个开发指南文档,文档中是C++的代码片断,本...
一个用于本地和远程进程间通信的nodejs模块,完全支持Linux,Mac和Windows。 它还支持从低级unix和Windows套接字到UDP和安全TLS和TCP套接字的所有形式的套接字通信。 Node.JS中复杂多进程神经网络的绝佳解决方案 ...
操作系统IPC实验的全部源代码。 在Unix的内核环境中,要解决的一个首要问题是:如何控制和处理不同进程之间的通信和数据交换。 本实验中我们将通过研究一个简单的实例,看看在同一台机器的UNIX环境下多个进程是如何...
功能: 一、POP3/FTP/…探测 二、IPC探测 三、SQL探测 四、高级扫描 五、其它 …
关于4种实现IPC机制的例子
安防人都知道,询问视频监控产品时一般都会问上这么一句:“你家这产品用的是谁家的方案?” 由此,芯片方案对产品市场的影响可见一斑,尤其是IPC。 可眼下,很多企业在选择芯片方案时,却容易犯尴尬症。目前...
赛达 SD-IPC6082-WIR-F(YC) 升级萤石固件
Ipc漏洞简单攻击.这是网络工具中很好的一个哦
安防人都知道,询问视频监控产品时一般都会问上这么一句:“你家这产品用的是谁家的方案?” 由此,芯片方案对产品市场的影响可见一斑,尤其是IPC。 可眼下,很多企业在选择芯片方案时,却容易犯尴尬症。目前...
研祥嵌入式工控机IPC-820产品说明书pdf,研祥嵌入式工控机IPC-820产品说明书:IPC-820 是一款 4U 19"上架型整机,外观全黑;前面板采用钣金造型,机箱为优质钢板成型,机箱的压条设计可调整高度,可满足EPI主板和...
在linux下实现ipc问题的解决办法和代码