繁体   English   中英

将内存地址作为文件传递到c中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM