进程间通信
文章平均质量分 56
dujunqiu
单片机,linux的嵌入式开发,会用一点python脚本来进行开发辅助工作
展开
-
sem_open: Invalid argument 报错处理
`sem_open` 返回 `"Invalid argument"` 错误的原因可能有多种。以下是一些常见的原因以及如何排除它们: - POSIX命名信号量的名称必须以斜杠 `/` 开头,并且名称中不能包含其他斜杠。- 名称长度限制:信号量名称的长度通常受限于系统的文件名长度限制(例如,`NAME_MAX`)。 - 某些系统可能对信号量的数量或大小有限制。如果已经达到了系统限制,可能会导致 `sem_open` 失败。 - 检查系统限制,例如 `/proc/sys/kernel/sem` 文件原创 2024-06-12 16:27:04 · 642 阅读 · 0 评论 -
在linux系统下,使用mmap技术,实现两个进程访问同一个内存区域的操作,并增加锁保护
首先,编写一个创建共享内存文件并写入数据的进程代码,添加信号量来保护共享内存区域;当两个进程需要同时写入共享内存区域时,使用锁机制来避免竞争条件和数据不一致是非常重要的。在Linux系统中,可以使用POSIX信号量(semaphore)来实现进程间的同步;POSIX命名信号量在Linux系统中通过内核管理,位于内存中的 /dev/shm/ 虚拟文件系统内,对系统的开销非常小,务必在程序结束时正确清理信号量。接着,编写一个读取共享内存文件的进程代码,添加信号量来保护共享内存区域。原创 2024-06-12 19:52:26 · 505 阅读 · 0 评论