c - Linux 内核模块原子模式

标签 c linux linux-kernel atomic

我正在开发 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 重定向到一个临时文件,然后 mvrm 它)。你需要了解更多inodes是。

如果你坚持要一些与内核相关的东西,请考虑 FUSE

注意:通常不希望内核代码写入文件。只有应用程序代码在写入文件,使用一些 filesystem内核中的代码。

PS:您可能对 inotify(7) 感兴趣.

关于c - Linux 内核模块原子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22111933/

相关文章:

c - 将 void 指针作为函数参数传递并将其转换为 timeval 数组

c - 无论我要求我的系统发送什么,它只发送 FF 和 FE

linux-kernel - buildroot 中的内核 defconfig(arm 目标)

c - 以编码中立的方式打印到终端

c - C 中 2D Char 数组的奇怪行为

java - 使用HTTPS客户端向服务器的440端口发送请求

c - 在 C 中创建目录,linux 不创建子目录(目录树)——为什么?

linux - 在 Linux 6 中运行 ./runInsaller for Oracle 11g 安装无法使用命令执行自动检查显示颜色

c - 即使条件成立,wait_event_interruptible 也不会返回

android - 为什么android源码这么大?