草庐IT

fmemopen

全部标签

c - MinGW 中没有 fopencookie 或 fmemopen 吗?

我可以使用什么来编写自定义流? 最佳答案 fmemopen是POSIX但不是C标准的一部分。fopencookie不是任何标准的一部分;这是一个GNU函数。tmpfile是fmemopen的一个很好的可移植替代品。这些函数几乎相同,只是tmpfile速度较慢并且需要fread来取回数据。一般来说,如果您可能需要将输出发送到文件以外的其他地方,最好不要编写采用FILE*的代码,而是支持自定义输出回调或其他东西。 关于c-MinGW中没有fopencookie或fmemopen吗?,我们在S

c++ - 如何在 Windows 上将 BYTE 数组映射为 FILE *

我发现了旧的、巨大的开源代码,它对存储在磁盘文件中的二进制数据执行一些计算,输出也保存为二进制文件。我想使用一种根方法,简化签名:intmagic(FILE*input,FILE*output);问题是我将输入数据存储在进程内存中,我希望输出也作为进程内存。代码太大,我无法在合理的时间内重写它。这个API迫使我在每次调用magic()时进行两次巨大的I/O。是否有可能在Windows上使用C/C++机制将BYTE数组映射为FILE*? 最佳答案 看来你需要fmemopen的功能:http://man7.org/linux/man-p

c - fmemopen 和 open_memstream 有什么区别?

在阅读stringstreams上的GNU文档时我发现了两个相似的函数,它们做的事情非常相似:FILE*fmemopen(void*buf,size_tsize,constchar*opentype)FILE*open_memstream(char**ptr,size_t*sizeloc)从阅读文档来看,open_memstream应该用于打开输出流,fmemopen用于输入。吸引我的是您可以传递给fmemopen的opentype参数。Linuxmanpageexplains:IfbufisspecifiedasNULL,thenfmemopen()dynamicallyalloca

c - fmemopen 和 open_memstream 有什么区别?

在阅读stringstreams上的GNU文档时我发现了两个相似的函数,它们做的事情非常相似:FILE*fmemopen(void*buf,size_tsize,constchar*opentype)FILE*open_memstream(char**ptr,size_t*sizeloc)从阅读文档来看,open_memstream应该用于打开输出流,fmemopen用于输入。吸引我的是您可以传递给fmemopen的opentype参数。Linuxmanpageexplains:IfbufisspecifiedasNULL,thenfmemopen()dynamicallyalloca