[英]Passing memory address as a file in c
如果我有某种具有像void foo(FILE* fp)
这样的函数的库,并且我有一个char*
数据数组,我有什么办法可以将指针传递给该数组或类似于foo
东西功能?。
我现在正在使用system()
写入一个临时文件,我真的不喜欢这样做。
不,stdio库没有用于定义您自己的缓冲方案的工具。
给定POSIX和虚拟内存,您可以使用mmap
打开带有备份文件的内存区域。 操作系统可能选择不将文件写入磁盘。 具体细节因操作系统而异,但这可以找到理想的解决方案。
或者,如Barmar建议的那样,使用pipe
将数据从流程中的辅助线程发送到主线程。
至于简单的解决方案……当可以使用mktemp()
, fopen()
, fwrite()
时为什么要使用system()
fwrite()
呢?
我认为您想要fmemopen 。 假设您正在Linux上运行(或其他可能的版本;如果需要Windows支持,则必须进行检查),它应该可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.