我需要一个跨平台的方式来处理内存缓冲区为FILE*
。我已经看到其他问题,指出没有可移植的方式来做到这一点(在Linux中fmemopen是我需要的,但它在Windows平台上失败)。使用setvbuf使内存缓冲区行为像FILE *
我试过使用setvbuf,它似乎工作。任何人都可以指出使用setvbuf函数的确切问题吗?
另外,我已经看到了C标准草案WG14/N1256和7.19.5.6说:
在任何时候所述阵列的内容是不确定的。
我不明白我是否使用自己的缓冲区它的内容如何可以不确定?
编辑:感谢所有的答案。不再使用这种方法。
对不起,我不明白这一点。您可以在C++中使用跨平台malloc或stringstream。 – rekire
@rekire stringstream正是我的想法,但代码使用C FILE *代替。 – user803563