IPC进程间通讯
消息队列
向消息队列发送消息和接收消息
代码示例
共享内存
信号量集
使用命令ipcs可以查看IPC的对象。
ftok
1.第一步,获取一个键值。
2. 第二步,通过键值获取一块内存,将这块内存的id返回。
3. 第三部,通过内存id来操作这块内存。
ftok.c
执行结果
通过键值获取一块内存,将这块内存的id返回,需要使用到msgget获取内核内存的id。
通过键值获取消息队列的id
msgget.c
msgsnd
msgrcv
将一个消息放入消息队列中。
processA.c
从消息队列中获取消息并显示
processB.c
根据键值获取共享内存的id,通过shmget获取共享内存id。
int shmget(key_t key, size_t size, int shmflg);
将共享内存映射到进程的虚拟地址空间中,使用shmat
shmat(2)
*int shmdt(const void shmaddr);
创建共享内存段。
shm.c
使用共享内存完成进程间通信:
shmA.c
shmB.c
具体参考代码示例
mycp.c