进程间通信:共享内存与Unix套接字的使用
在进程间通信(IPC)领域,共享内存和Unix套接字是两种常用的技术。本文将详细介绍如何使用共享内存实现父子进程间以及不相关进程间的通信,同时也会讲解如何创建Unix套接字的服务器和客户端。
共享内存:父子进程间通信
共享内存是一种常见的IPC技术,可用于不相关进程、相关进程(如父子进程)以及线程之间的通信。以下是一个使用共享内存实现父子进程间通信的示例。
// 代码片段
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. 编译程序:
$> gcc -Wall -Wextra -std=gnu11 -lrt shm-parent-child.c -o shm-parent-child
这里使用GNU11标准,因为C99标准不包含 MAP_ANONYMOUS 宏,而GNU11是C11标准加上一些额外的GNU扩展。同时,链接实时扩展库。
2. 测试程序:
$> ./shm
超级会员免费看
订阅专栏 解锁全文

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



