在内核空间中创建共享内存段?

时间:2014-05-01 22:25:12

标签: c linux operating-system system

我正在尝试创建一个"邮箱"系统调用,其中进程可以相互发送消息。我想使用某种共享内存,所以我可以参考一个"邮箱"通过它的ID,但我不能从另一个系统调用中调用系统调用吗?还有另一种方式我可以参考"到特定的邮箱"通过它的ID?我在考虑使用kmalloc并创建一个结构数组。不寻找代码,只是关于我应该如何做的一般指示。谢谢!

编辑:不要以为我澄清了,但邮箱必须在内核空间

1 个答案:

答案 0 :(得分:1)

您当然无法从用户空间调用kmalloc

您正在寻找的实际上称为POSIX“共享内存”。

通常,您调用shm_open来打开共享内存对象。然后你mmap它,所以你可以通过指针访问它,就像普通的内存一样。

另见: