出力をファイルにパイプするときのラインバッファリングの使用

出力をファイルにパイプするときのラインバッファリングの使用

stdout印刷した後、次のファイルにパイプするPerlプログラムがあります。

./skript.pl > file.txt 2>&1

これにより、スクリプトは出力をバッファリングします。ただし、スクリプトが現在何をしているのかを見たいので、発生するとすぐに出力が出力されるようにこの設定でラインバッファリングを有効にする方法を探してみたいと思います\n。 (単に端末に印刷すると、これは通常の動作です。)

CentOSに何もインストールせずに動作するソリューションが必要です。

Perlscript内でコンテンツを変更することはオプションです。私はこれを試しましたが、私が望むもの以上を行います。$|現在行の終わりがまだ印刷されていない場合、出力はめちゃくちゃになります。cat file.txt

ベストアンサー1

スクリプトでは、次のものを使用できます。

STDOUT->flush;

出力バッファをフラッシュします。

STDOUT->autoflush(1);グローバルに設定することもできます。

改行を更新するには、以下を試してください。

STDOUT->autoflush(0);
open STDOUT, ">/tmp/script.out"
.
.
close STDOUT;

おすすめ記事