寒假day5

本文深入探讨了Linux进程间通信(IPC)的各种方式,包括管道、有名管道(FIFO)、信号、消息队列、共享内存等核心机制。详细解析了每种通信方式的工作原理,如管道的读写操作、有名管道的阻塞与非阻塞特性、消息队列的创建与读写、共享内存的映射与删除等,为理解Linux系统内核提供了关键视角。

Linux 进程间通信方式
1 管道(pipe)(单向的) 和有名管道(FIFO)
int pipe(fd【2】)   fd 【0】用于读管道     fd【1】写

int mkfifo(const char * pathname, mode_t mode)
有名管道比管道多了一个打开操作:open。
对于读进程
• 若该管道是阻塞打开,且当前FIFO内没有数据,则对读进程而言将一直阻塞到有数据写入。
• 若该管道是非阻塞打开,则不论FIFO内是否有数据,读进程都会立即执行读操作。
对于写进程
• 若该管道是阻塞打开,则写操作将一直阻塞到数据可以被写入。
• 若该管道是非阻塞打开而不能写入全部数据,则读操作进行部分写入或者调用失败

2 信号
3 消息队列   创建msggset()读写 msgsnd()msgrcv() 删除msgctl()
4 共享内存  创建shmget  映射 shmat 使用 接触 shmdt 删除shmct

ipcrm -m .....删除进程
ipcs -q 查找地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值