98. 进程间通信 - 父子进程 通过共享内存案例

本文介绍了如何在父子进程中实现通过共享内存进行通信的案例,涉及shmget、shmat、shmdt、shmctl等函数的使用。通过ftok创建key值,并利用fork函数创建子进程,实现单向通信,其中父进程写入,子进程读出。在fork函数中,根据返回值区分父进程和子进程,从而进行不同的操作。
摘要由CSDN通过智能技术生成

1. shmget:共享内存创建函数,在内核空间创建缓存

2. shmat:将内核的缓存映射到用户空间的地址

3. shmdt:内核空间的缓存使用完后,在用户空间是否内核缓存映射到用户空间的地址

4. shmctl:内核空间的缓存使用完后,释放内核空间的共享缓存

5. ftok:用来创建key值,key值是shmget函数的第一个参数。

key用于无血缘关系的进程间通信,IPC_PRIVATE用于有血缘关系的进程间通信

本节案例:父进程写入,子进程读出,是一个单向通信的过程。

root@100ask:/home/book/C_coding/0113# cat shmctl.c
#include "sys/types.h"
#include "sys/shm.h"
#include "signal.h"
#include "unistd.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void myfun(int signum)
{
	ret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值