我一直在尝试找出从 C 程序将二进制数据写入标准输出的最佳方法。它在 Linux 上运行良好,但在 Windows 上编译时遇到问题,因为“\n”被转换为“\r\n”。
是否有一种标准方法可以以某种二进制模式写入 stdout,从而避免换行符转换?如果不是,让 Windows 停止执行此操作的最简单方法是什么?
我正在使用 GCC 和 MinGW,并使用 fwrite
写入 stdout
。
最佳答案
您可以使用setmode(fileno(stdout), O_BINARY)
如果您想使其与 Linux 兼容,请将其包装在 ifdef 中。
另请参阅:https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/setmode?view=vs-2017
关于c - 以二进制模式写入 stdout 的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16888339/