进程间通信:共享内存与Unix套接字的使用
在进程间通信(IPC)的世界里,共享内存和Unix套接字是两种常用的技术。本文将详细介绍如何使用共享内存实现父子进程间以及无关进程间的数据共享,同时阐述如何创建Unix套接字的服务器和客户端进行通信。
1. 父子进程间的共享内存
共享内存是一种常见的IPC技术,可用于无关进程、相关进程和线程之间的数据共享。下面我们来看如何在父子进程间使用共享内存。
1.1 代码示例
// 部分代码示例
printf("Message from child: %s\n", addr);
memcpy(addr, parentmsg, strlen(parentmsg) + 1);
printf("Parent message: %s\n", addr);
munmap(addr, DATASIZE);
return 0;
1.2 编译与测试
- 编译 :使用GNU11标准进行编译,因为C99标准不包含
MAP_ANONYMOUS宏,而GNU11包含。同时,需要链接实时扩展库。
gcc -Wall -Wextra -std=gnu11 -lrt shm-parent-child.c -o shm-parent-child
- 测试 :运行编译后的程序,可看到父子进程间
超级会员免费看
订阅专栏 解锁全文
1010

被折叠的 条评论
为什么被折叠?



