我正在使用带有 getc() 的 while 循环从文件句柄中读取,它工作正常。现在我正在添加对管道的支持。
我的问题是,虽然 x0A、X0D 和 x0A0D 通过就好了,但 x0D0A 的任何情况都会减少到 x0A。此外,x1A 似乎在遇到时会完全停止该过程。
我正在输入 tar 的输出,并且正在弄乱文件。
FILE *FH;
FH=stdin;
int buff;
while((buff=getc(FH))!=EOF) {
//stuff
}
这很简单,因为 FH 需要指向文件或标准输入。对于测试,我只是将 buff 写入文件以查看更改。如果 FH 是一个文件,则该代码可以完美运行。
我在使用 tar、type 和 cat 作为管道源时看到了相同的行为