从标准输出写入文件
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
。但是您使用的是已弃用的 fileno
和 write
.
请使用_fileno
和_write
。
我正在创建一个 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
。但是您使用的是已弃用的 fileno
和 write
.
请使用_fileno
和_write
。