私は、ファイルを開いて操作中に(通常は一度に何日も)日々書き込むデーモンを持っています。ログのローテーションをサポートするために、ハンドルが参照しているファイルがいつ元の新しい場所にあるのかを識別できるようにしたい。Linuxのファイルハンドルからのファイルパスを確認する
これは可能ですか? fstat()は、この状況に役立つものは何も私に与えません。
私の現在の解決策は、ログ記録機能でログファイルの存在をテストし、存在しない場合は古いハンドルを閉じて新しいハンドルを開くことです。これは動作しますが、ハックであり、制限があります。私の場合、私たちのシステムグループでは、ログを回転させるツールを使用しています。回転ツールは、回転させた後にファイルに触れなければならないため、デーモンはファイルハンドルが正しい場所を指していると考え続けます。
このスレッドを見て、phpマニュアルに相当する機能があるかどうかを確認してください。 http://stackoverflow.com/questions/1188757/getting-filename-from-file-descriptor-in-c – Jake