我正在编写一些使用fsync()
系统调用来确保文件持久保存到磁盘的软件。我以前做过,而且我知道您需要注意的各种“陷阱”(即,在替换文件时,您需要fsync()
对该文件,发出 a rename()
,然后fsync()
是包含目录。对软件进行持久编码将文件写入磁盘很好。
测试软件是另一回事。我想验证它在遇到停电等情况时是否正常运行。我的身体反应还不错,但还不足以拔掉两条 CPU 指令之间的电源线。
我应该如何测试写入磁盘的 C 程序的持久性?
(正如标题所暗示的那样,我假设您使用某种类似调试器的软件,可能使用ptrace()
, 来在特定文件/行处自动终止您的程序,如可执行文件的调试信息中所列。)