我正在开发 linux 内核模块来执行读/写操作。 它读取输入文件并将内容写入输出文件。 我必须在我的代码中引入原子模式。 我想知道在原子模式的部分写入的情况下是否有办法从写入的文件中恢复更改。
我想删除我写入输出文件的所有内容,以防我的程序出错。
请回复。
最佳答案
I want to delete all content I have written to an output file in case my programs gives an error.
我会避免为此目的开发内核模块。
您可以在 shell 或应用程序代码中简单地执行此操作:write(2)进入一些临时文件,然后 rename(2)成功的文件或unlink(2)它失败了。或者您可以在某些 shell 脚本中执行此操作(例如,将 stdout 重定向到一个临时文件,然后 mv
或 rm
它)。你需要了解更多inodes是。
如果你坚持要一些与内核相关的东西,请考虑 FUSE
注意:通常不希望内核代码写入文件。只有应用程序代码在写入文件,使用一些 filesystem内核中的代码。
PS:您可能对 inotify(7) 感兴趣.
关于c - Linux 内核模块原子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22111933/