通过stdin读取二进制数据的问题

时间:2012-12-14 11:48:02

标签: c linux

从stdin读取时我遇到二进制数据问题。

我的应用程序将分隔符设置为双换行符“2”,当我输入两个新行时,它将停止通过stdin读取并将内容保存到char缓冲区中。 我能够读取总字节而不会丢失,直到我按下两个输入,但是我们遇到\ n \ r \ nCR + LF的数据被修改为\ n。

我正在阅读基于Windows的文件teraterm,我的硬件是Linux所以我遇到了这个问题,在代码级别我试过

fgetc(stdin), getc(stdin)
freopen(stdin,"rb",1); 

fread(buff,1,bufsize,stdin)

但并非所有函数都在读取和修改回车符。  所以请任何人帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

听起来你正在从管道中读取二进制数据。我建议您使用read系统调用,从STDIN_FILENO文件描述符中读取。