IPC三种通讯方式详解
来源:互联网 发布:msvcp120.dll丢失知乎 编辑:程序博客网 时间:2024/06/05 21:50
IPC对象:消息队列、共享内存、信号灯
Ipcs命令:用来查看IPC对象–m共享内存 -q消息队列 -s信号灯
Ipcrm命令:–m共享内存 -q消息队列 -s信号灯 ID :删除某个IPC对象
都要依靠key来创建,通过ftok获得一个key
Ftok(路径,(1-255));创建一个key。
消息队列:消息的链表。
Msgget(key,创建/打开方式):创建消息队列/获得消息队列ID。
第二个参数:IPC_CREAT|0666 IPC_EXCL,也可以为0.
Msgsnd(消息队列ID,消息结构体,消息正文大小,0):发送消息
消息结构体struct xxx{ long type消息类型; char text[]消息正文}
Msgrcv(消息队列ID,消息结构体,消息正文大小,想接受的消息类型,0(阻塞)/IPC_NOWAIT(非阻塞)):接受消息。
Msgctl(消息队列ID,IPC_RMID,NULL):删除消息队列
共享内存:在内存上开辟一段空间,映射到进程的地址空间来用
Shmget(key,共享内存的大小,方式)。创建共享内存/获得ID。
Shmat(共享内存ID,NULL(系统指定映射地址),0(可以读写));需要一个指针来指向映射地址,。
Shmdt(地址);取消映射
Shmctl(ID,IPC_RMID,NULL)。删除共享内存。
信号灯:也叫信号量,进行进程间共享资源的保护,进程间的控制。
Semget(key,信号灯数量,同上);创建信号灯/获得信号灯ID
Semop(ID,sembuf,操作的信号量个数);
StructSembuf{信号量编号,操作方式(-1:P操作申请资源;+1:V操作释放资源),SEM_UNDO达到阻塞效果}
Semctl(ID,信号量编号,控制,unionsemun某个成员);
控制:SETVAL:设置信号灯的初始值。
IPC_RMID删除
- IPC三种通讯方式详解
- IPC(中)-进程间通讯方式详解
- IPC(中)-进程间通讯方式详解
- IPC机制的几种通讯方式之ContentProvider
- 进程间的通讯(IPC)方式
- 进程间的通讯(IPC)方式
- 进程间的通讯(IPC)方式
- 进程间的通讯(IPC)方式
- XSI IPC 进程间通讯方式
- IPC机制---04 Android中的IPC通讯方式(A)
- IPC机制---04 Android中的IPC通讯方式(B)
- IPC机制---04 Android中的IPC通讯方式(C)
- IPC机制---04 Android中的IPC通讯方式(D)
- IPC机制---04 Android中的IPC通讯方式(E)
- MVC MVP MVVM三种通讯方式
- Vc 三种串口通讯方式
- Linux进程间通讯-IPC详解
- Linux 进程间通讯(IPC)方式 ------- 共享内存
- 信号和管道
- 深入理解java 整型数, Integer的缓存
- SyntaxNet安装与使用详解
- MySQL修改root密码的多种方法
- python函数
- IPC三种通讯方式详解
- 查找算法之索引顺序查找
- STL容器知识总结
- linux/android常用工具
- 一个简洁的PHP操作Access类
- PAT(basic level) 1037 在霍格沃茨找零钱(20)
- 装载问题
- windows版本千寻差分SDK的配置与使用
- python学习日记(一)