どのくらいの遅れてお分かりですか?数百文字?数秒?分?時間?
あなたが見ているのはバッファリングです。ほぼすべてのファイルの読み書きがバッファされます。これには入力と出力が含まれ、パイプ内でバッファリングが行われます。一度にバイトではなく、データのパケットを渡すほうが効率的です。私は、HFS +ファイルシステムのデータはUTF-16に保存され、Mac OS Xは通常UTF-8をデフォルトとして使用すると信じています。 (NTFSでは、UTF-16を使用してデータも格納されますが、Windowsではデフォルトで文字データのコードページが使用されます)。
ですから、別の端末からtail -f
を実行した場合、あなたはtail
からバッファリングを見ることになるかもしれませんが、あなたは、パイプを使用し、tee
とき、あなたはパイプで、多分なぜtee
コマンドでバッファを有することができます遅れを見てください。
ところで、遅れがあることをどうやって知っていますか?あなたのプログラムがどれくらい素早くディスクに書き込んでいるかをどのように知っていますか?ファイルへの書き込みを追跡するためにプログラムに何かを印刷しますか?
この場合、考えているほど遅くならないかもしれません。ファイル書き込みもバッファリングされます。したがって、遅延はtail -f
からではなく、スクリプトからをファイルに書き込むことが可能です。
クールなコマンドは、以前は気づいていなかった。しかし、私のMac OS Xのボックスでは、tail -fよりもさらに遅れているようです。非常に奇妙な.... – BBnyc