28、进程间通信:共享内存与Unix套接字的使用

进程间通信:共享内存与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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值