私は次のコードを使用してstdinから読み取ります
int size;
int bufferSize=2000;
char echoString[bufferSize];
while ((size = read(fileno(stdin), echoString, bufferSize)) > 0){
write(fileno(stdout), echoString, size);
}
stdinから取得したデータを画面に書き込むには...しかし、うまく機能しません。猫をやるなら"hugetarfile.tar.gz"| ./myprogram | tar -zvtは機能しますが、最終的には「クラッシュ」して、ゴミがあることを示します。猫「hugetarfile.tar.gz」をやるなら| tar-zvtそれは魅力のように機能します。
タールの終わりにあなたが見ることができます:
gzip:stdin:解凍OK、末尾のガベージは無視されますtar:子がステータス2を返し、ファイルを追加しました* fin = freopen(nill、 "rb"、 "stdin")
誰かが私を助けることができますか?xD
ただ言うと...私はトラフソケットを送信するための読み取りを作成していますが、この場合、この戦争はテストするのが簡単です。