所以,我试图在C程序中创建一个共享内存段,所以我可以在其中编写一个简单的字符,并从另一个C程序中读取该字符。
我一直在尝试使用calloc()
和malloc()
,但我相信这只适用于此计划的heap
。
还有其他功能可以做同样的事情,但在RAM
内存中?也许通过十六进制值?或者我错了,这些函数实际上保留了所有进程可见的内存?
提前致谢。
编辑: - 我正在使用Windows 8。 -Language不限于C,可以是任何其他语言。
答案 0 :(得分:2)
当您需要在隔离的进程之间传输数据时,可以选择多个Interprocess Communications。共享一块内存通常使用file mapping个对象来实现。
设置文件映射对象需要以下API调用序列:
使用来自其他进程的现有文件映射对象需要以下调用:
请注意,跨进程通过文件映射共享内存需要在这些进程之间进行同步。本主题超出了本答案的范围。 MSDN提供了对synchronization的介绍。
<小时/> MSDN中也提供了示例代码:Creating Named Shared Memory。
答案 1 :(得分:0)
没有标准的方法可以做到这一点。如果您正在使用Unix / Linux,我建议您查看我的shared memory malloc实现,它在Windows机器上可以使用Cygwin,但它实际上是为Unix设计的。