首页
个人开发
工作相关
搜索
登录
搜索
colo
欲买桂花同载酒
累计撰写
1823
篇文章
累计收到
0
条评论
首页
栏目
首页
个人开发
工作相关
进程间通信
2025-12-12
使用管道实现父子进程间通信
在父子进程间使用管道通信的核心步骤:父进程调用pipe()创建管道,获得两个文件描述符父进程调用fork()创建子进程父进程关闭读端,向写端发送数据子进程关闭写端,从读端接收数据双方通信完成后关闭文件描述符
2025年-12月-12日
4 阅读
0 评论
进程间通信
2025-12-12
设计一个多进程日志收集系统
使用共享内存和信号量实现多进程日志收集系统的核心步骤:创建固定大小的环形缓冲区作为共享内存区使用两个信号量:empty(初始为缓冲区大小)控制空槽位,full(初始为0)控制已填充槽位生产者进程(日志生成器)在写入前执行sem_wait(empty),写入后执行sem_post(full)消费者进程(日志处理器)在读取前执行sem_wait(full),读取后执行sem_post(empty)通过互斥信号量或原子操作保证缓冲区指针更新的线程安全
2025年-12月-12日
3 阅读
0 评论
进程间通信
2025-12-11
简述无名管道(pipe)的特点及其适用场景
无名管道(pipe)是一种半双工的进程间通信机制,主要特点包括:适用于父子进程或兄弟进程间的通信数据采用字节流形式传输通过文件描述符进行读写操作单向通信,需明确读写端随进程结束自动销毁适用场景:命令行中的管道操作(如 ls | grep txt)、有亲缘关系进程的简单数据传递。
2025年-12月-11日
4 阅读
0 评论
进程间通信
2025-12-11
设计一个生产者-消费者模型,使用共享内存和信号量进行进程间通信
实现要点:使用shmget()/mmap()创建共享内存存储循环缓冲区定义三个信号量:mutex:二进制信号量保证缓冲区操作原子性empty:计数信号量跟踪空槽位full:计数信号量跟踪已用槽位生产者流程:等待empty信号量获取mutex写入数据到缓冲区释放mutex增加full信号量消费者流程:等待full信号量获取mutex读取缓冲区数据释放mutex增加empty信号量
2025年-12月-11日
4 阅读
0 评论
进程间通信
2025-12-8
设计一个生产者-消费者模型实现进程间通信
实现生产者-消费者模型的核心要点:通信机制:使用共享内存传递数据,POSIX信号量控制同步同步设计:两个信号量分别表示空槽位(free)和已用槽位(used)缓冲区管理:循环队列实现固定大小的缓冲区进程安全:信号量操作保证原子性,避免竞争条件资源清理:进程退出时释放共享内存和信号量资源
2025年-12月-8日
6 阅读
0 评论
进程间通信