从标准输出写入文件

Writing to file from stdout

我正在创建一个 EXE,它与 stdin 和 stdout 流一起使用。

我的可执行文件的输出正在将一些压缩数据写入标准输出流。

  int fd = fileno(stdout);
  _setmode(fd, O_BINARY);
  n = write(fd, buffer, nbytes);

但是当我将那些写入标准输出流的数据重定向到文件时,(使用 my_exe get_data > File.txt ), 文件中的数据长度将与原始数据长度不匹配 data.If 我有一个 100 个字符的数据,然后在文件中,我看到 106 个字符的数据。我认为某些换行符或回车符 return 已添加到文件中。我已将标准输出设置为二进制流。但是在重定向到文件时,同样发生了。请问有什么办法可以解决吗

您正在使用 _setmode MS Visual C++ 函数替换已弃用的 setmode。但是您使用的是已弃用的 filenowrite.

请使用_fileno_write