在可执行文件之间交换数据

Exchanging data between executables

本文关键字:数据 交换 之间 可执行文件      更新时间:2023-10-16

我有两个c++程序P1和P2(每个程序生成一个可执行文件)。P1将字符串保存在文件中,P2加载并使用该字符串。这个过程只是为了在这两个独立的程序之间交换数据。

是否有可能将字符串保存在RAM中的某个地方,以便硬盘不会被占用?

是否有可能将字符串保存在RAM中的某个地方,以便硬盘没有被占用?

是的,您可以使用少数进程间通信方法之一。选项包括

  • 套接字
  • 内存映射文件
  • 共享内存
  • 管道

下面是一个使用文件映射到RAM并调用mmap的示例。

映射到RAM的文件,可以通过改变内存地址来修改直接而不是输出到流,与标准文件。

读取和写入内存映射文件避免了在使用read()或write()系统调用时发生的不必要的复制,其中必须将数据复制到用户空间缓冲区。

教程