如果我有某种类似于void foo(FILE* fp)
的函数的库,并且我有一个char*
数据数组,那么我有没有办法将指针传递给数组或其他什么东西类似于foo
函数?。
我现在正在做的是使用system()
写入临时文件,我真的不喜欢这样做。
答案 0 :(得分:3)
不,stdio库无法定义您自己的缓冲方案。
给定POSIX和虚拟内存,您可以使用mmap
打开带有后备文件的内存区域。操作系统可能选择不将文件写入磁盘。详细信息因操作系统而异,但这可以达到理想的解决方案。
或者,正如Barmar建议的那样,使用pipe
将数据从进程中的辅助线程发送到主线程。
至于简单的解决方案......为什么在使用system()
,mktemp()
,fopen()
时使用fwrite()
?
答案 1 :(得分:1)
我想你想要fmemopen。假设你在Linux上运行(或者其他一些posixy;如果你需要Windows支持,则需要检查),它应该是可用的。