私が (usr1 として) 所有している構成ファイルと、元の構成ファイルからコピーするために OS デーモンで (5 分ごとに) 作成した一時ファイルとの間にハード リンクが突然作成されたことに驚きました。
元のファイルにコピーした後、 rename(*file2, *file1); を使用します。config.txt.tmp へのトレースを強制終了する C で
ディレクトリは mnt /sram ドライブ上で所有されているルートであり、組み込みマシンに対するルート アクセス権を持つ人はいません。ストレージ メディアは、組み込み Linux 2.6.10 の NAND フラッシュ SRAM です。
ls -l
ショー
2 config.txt 699byte date_modify
2 config.txt.tmp 699byte date_modify
config.txt.tmp が作成され、config.txt からコピーされ、構成パラメータが config.txt に送信され、5 ~ 7 行の C 行のみでアトミックに削除されます。
ディレクトリはルート所有であり、ハード リンクを作成する方法はありません。
低レベル関数での「ハードリンク」作成の説明はありますか? 競合状態に直面している可能性はありますか? それとも、フラッシュを介したストレージ用のカーネル コードでしょうか? それともLinuxのバグ?
私のコードは 5 年以上、100 台のマシンで実行されましたが、最近この問題が発生したのは 1 台のマシンだけでした。