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

标签 c

如果我有某种类型的库,它具有类似 void foo(FILE* fp) 的功能,并且我有一个 char* 数据数组,是否存在我有什么方法可以将指针传递给数组或类似于 foo 函数的东西?

我现在正在做的是使用 system() 写入一个临时文件,我不太喜欢这样做。

最佳答案

不,stdio 库无法定义您自己的缓冲方案。

给定 POSIX 和虚拟内存,您可以使用 mmap 打开带有后备文件的内存区域。操作系统可能会选择不将文件写入磁盘。细节因操作系统而异,但这可以接近理想的解决方案。

或者,如 Barmar 所建议的,使用 pipe 将数据从进程中的辅助线程发送到主线程。

至于简单的解决方案……既然可以使用 mktemp()fopen() 为什么还要使用 system() fwrite()?

关于c - 在c中将内存地址作为文件传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22314340/

相关文章:

c - 删除字符串中的一个字符?

计算整数的平方和

c++ - 谷歌代码堵塞 : how to submit answer

c - 添加到列表中的奇怪值

c - 使用 Windows API 使用互斥锁方法创建 100 个线程会导致意外结果,如何修复?

c - 链表字段添加

c - 内核代码如何知道正在使用哪个 spi 总线?

c - 嵌入式 C : Able to access some struct members but not others

c - 在 linux 中,hyphen 是一个多字符字符?

c - Linux 内核 : Wait for other threads to complete