所以,我试图在C程序中创build一个共享内存段,所以我可以在其中编写一个简单的字符,然后从另一个C程序中读取该字符。
我一直在尝试使用calloc()
和malloc()
但我相信这只适用于这个程序自己的heap
。
有没有另外的function来做同样的事情,但在RAM
内存? 也许通过一个hex值? 还是我错了,这些function实际上保留所有进程可见的内存?
提前致谢。
编辑: – 我使用Windows 8.语言不限于C,可以是任何其他语言。
当您需要在隔离的进程之间传输数据时,您可以选择多种进程间通信 。 共享一块内存通常使用文件映射对象来实现。
设置文件映射对象需要以下一系列API调用:
使用另一个进程中的现有文件映射对象需要以下调用:
请注意,跨进程通过文件映射共享内存需要这些进程之间的同步。 这个话题超出了这个答案的范围。 MSDN提供了对同步的介绍。
示例代码也可以在MSDN中使用: 创建命名的共享内存 。
没有这样做的标准方法。 如果你在Unix / Linux上工作,我会建议看看我的共享内存malloc实现,它可以在Windows机器上的Cygwin上工作,但实际上是为Unix设计的。