c - 以二进制模式写入 stdout 的最简单方法是什么?

标签 c windows binary newline stdout

我一直在尝试找出从 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/

相关文章:

c - 当作为后台进程运行时,防止 read() 系统调用返回 0

windows - Perl:检查字符串是否为有效目录,区分大小写

windows - 哪种字体是 MFC 对话框控件的默认字体?

python - 快速 'Record Update' 到二进制文件?

将 char[] 转换为 Int[]

c - 你怎么知道结构中的某些字段是数组?

c - 亚表达蛋白的亚表达和分组

c++ - 使用 PowerShell 作为控制台,就好像它是使用 AllocConsole 创建的一样

unix - 如何通过 Connect :Direct NDM? 传输二进制文件

在 C 中将 Ascii 转换为二进制