标签: c linux operating-system system
我正在尝试创建一个"邮箱"系统调用,其中进程可以相互发送消息。我想使用某种共享内存,所以我可以参考一个"邮箱"通过它的ID,但我不能从另一个系统调用中调用系统调用吗?还有另一种方式我可以参考"到特定的邮箱"通过它的ID?我在考虑使用kmalloc并创建一个结构数组。不寻找代码,只是关于我应该如何做的一般指示。谢谢!
kmalloc
答案 0 :(得分:1)
您当然无法从用户空间调用kmalloc。
您正在寻找的实际上称为POSIX“共享内存”。
通常,您调用shm_open来打开共享内存对象。然后你mmap它,所以你可以通过指针访问它,就像普通的内存一样。
shm_open
mmap
另见:
shm_overview(7)