所以我的程序中有一些临时数据(在 RAM 中)。我想以某种方式使它看起来像一个文件(例如,将其发送到另一个以文件链接作为参数的程序中)?
是否可以?
怎么做这样的事情?
为什么不简单地将文件写入磁盘?如果写入磁盘太慢,您可以将FILE_ATTRIBUTE_TEMPORARY
标志传递给CreateFile以将数据保留在缓存中(并避免将其写入物理设备)。
有时,显而易见的解决方案是最好的……
如果您的操作系统支持(Unixoid 系统和 Windows 支持),您可以尝试使用内存映射文件。
您可以使用以下popen()
函数在 C 中执行此操作:
FILE *f = popen("program args", "w");
// write your output to f here using stdio
pclose(f);
如果您的外部程序从stdin
.
你可以使用 pipe()
pipe() 函数应创建一个管道并放置两个文件描述符, 参数 fildes[0] 和 fildes[1] 各有一个,它们指的是 管道读写端的打开文件描述。他们的 整数值应是两个最低可用的时间 管道()调用。O_NONBLOCK 和 FD_CLOEXEC 标志在两者上都应清除 文件描述符。(fcntl() 函数可用于设置这两个 标志。)
是的,有可能。您可以通过进程间通信机制将数据传输到其他应用程序:
编辑:MSDN在此处列出了适用于 Windows 的所有 IPC 机制。