我很惊讶在我(作为usr1)拥有的配置文件和我在OS守护程序中创建的临时文件(每5分钟)之间突然创建的硬链接,从原始配置文件复制。
复制回原始文件后,我使用重命名(* file2,* file1);在C中杀死任何跟踪到config.txt.tmp
该目录在mnt / sram驱动器上是root用户所有,并且没有人对嵌入式计算机具有root访问权限。 存储介质是嵌入式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行内原子地删除
该目录是root用户,无法创建硬链接。
任何人都有低级别功能中“硬链接”创建的解释吗? 我可以面对竞争条件吗?或者它可能是一些内存代码存储在闪存?还是Linux中的一个错误?
我的代码运行了5年,100台机器,最近只有1台机器出现了这个问题。
答案 0 :(得分:1)
通过执行
检查文件是否实际硬链接ls -i
显示inode。
我的头顶:
修改强>
FWIW:从你的文字中,我得到的印象是你可能正在做相反的事情:我希望你写一个.tmp副本,一旦一切都被冲洗了。 synched,'atomically'(好吧,用于文件系统支持和排序模式的交叉指针)将其重命名为位。 (我现在只是猜测,因为大部分图片实在太模糊了)