我可以读取open_memstream()生成的流吗?

Sha*_*arf 2 c++

我通过open_memstream()创建一个流,填充然后读取.它工作正常.但我很困惑,函数文档说:"open_memstream()函数打开一个用于写入缓冲区的流".但我也可以读它.我是否以正确的方式使用它?也许我可以读取流因为我的平台中的功能实现允许这样做?当我改变平台时,我可能会收到错误.

nos*_*nos 5

但我也可以读它.我是否以正确的方式使用它?

不,不是真的.Posix指定open_memstream()仅用于输出.你只应该写信给它.您可以通过open_memstream()创建的缓冲区访问您编写的数据,但不能访问fread(),fgets()或类似的缓冲区.

如果你想要一个你也可以阅读的流,请使用fmemopen().

也许我可以读取流因为我的平台中的功能实现允许这样做?

是的,它可能是实现的一个功能,允许您从FILE*读取,检查其文档.