ファイルハンドルから読み取るために getc() で while ループを使用していますが、正常に動作します。現在、パイプのサポートを追加しています。
私の問題は、x0A、X0D、および x0A0D は問題なく通過しますが、x0D0A のケースはすべて x0A に縮小されることです。また、x1A に遭遇するとプロセスが完全に停止するようです。
tar の出力をパイピングしていて、ファイルがめちゃくちゃになっています。
FILE *FH;
FH=stdin;
int buff;
while((buff=getc(FH))!=EOF) {
//stuff
}
FH はファイルまたは標準入力のいずれかを指す必要があるため、これは単純化されています。テストのために、変更を確認するためにバフをファイルに書き出すだけです。FH がファイルの場合、コードは完全に機能します。
パイプ ソースとして tar、type、および cat を使用した場合と同じ動作を見てきました。