我正在开发linux内核模块来执行读/写操作。 它读取输入文件并将内容写入输出文件。 我必须在我的代码中引入原子模式。 我想知道在部分写入原子模式的情况下是否有办法从写入的文件中恢复更改。
我希望删除我写入输出文件的所有内容,以防我的程序出错。
请回复。
答案 0 :(得分:3)
我希望删除我写入输出文件的所有内容,以防我的程序出错。
我会避免为此目的开发内核模块。
您可以在shell或应用程序代码中执行此操作:write(2)到一些临时文件中,然后rename(2)文件成功或unlink(2)失败。或者您可以在某些shell脚本中执行此操作(例如,将stdout重定向到临时文件,然后将mv
或rm
重定向到它。您需要了解inodes的更多内容。
如果您坚持要与内核相关,请考虑FUSE
注意:通常不希望内核代码写入文件。只有应用程序代码使用内核中的一些filesystem代码编写文件。
PS:您可能对inotify(7)感兴趣。