私はウィンドウズ上のgit bash端末でいくつかのプログラムを実行し、特定のキーワードを検索するためにgrepに出力をリダイレクトします。問題は、出力が遅れることです。したがって、端末は出力のチャンクを待ってからそれを表示するように見えます。grepを削除しても遅延はありません。出力がgrepにリダイレクトされるときの遅延を修正する方法
バッファリングはしている
—
AFH
git
の出力ルーチンとあなたができることはほとんどあり:独自のプログラムを作成する場合は、それぞれの書き込みの後に私が見ることができる唯一のソリューションをコンパイルすることですので、あなたは、出力をフラッシュすることができgit
、その出力の機能を変更した後、ソースから。その価値はありますか?
NonlinearFruitこれで問題は解決しません。@AFHなぜgitの問題だと思いますか?私は実際にgrep gitの出力をしていません。
—
user544582
@ user544582 - あなたの質問は不明瞭に語られており、私と@NonlinerFruitの両方
—
AFH
git
が、それが出力が向けられているプログラムであることを理解していましたgrep
。しかし、どのプログラムを実行していても、同じ議論が当てはまります。リダイレクトされた出力はバッファされ、(1)バッファがいっぱいになる、(2)出力が特にフラッシュされる(O_SYNC
またはO_DSYNC
オプションで開かれると自動的に行われる)、(3)出力ファイルがバッファの外側に再配置されるまで書き込まれません。(4)ファイルが閉じられている。
@ AFH私はgit bashターミナルでプログラムを実行したと言っていますが、それはどのように不明瞭ですか?問題は、そのプログラムのバイナリしか入手できず、ソースを変更できないことです。また、Linux上で実行した場合、git bash端末内のWindowsシステムでのみ出力はバッファされません。
—
user544582
git foo | grep --line-buffered my_pattern