このページの内容

1.8 変更中のファイルを比較する

diffなどのコマンドは、一連のシステムコールを使ってファイルやディレクトリーを読み込みます。通常、OSは処理前にすべての入力のスナップショットを取る手段をプログラムに提供しないためです。読み取り中に入力ファイルが変わると、diffや関連コマンドは、入力ファイルシステムのどの時点の状態にも対応しない出力を生成することがあります。

たとえば、diffがファイルの半分だけを読んだ時点で別のプロセスがファイルをサイズ0に切り詰めると、diffは読み取った半分を入力データとして使います。別の例として、再帰的なdiffがあるファイルをディレクトリーと判断した後、別のプロセスがそのディレクトリーを通常ファイルに置き換えたとします。その後、diffがディレクトリーへ入ろうとすると、diffは診断を表示して失敗します。

このような状況では、diffや関連プログラムの出力は、ある程度注意して解釈してください。