c - Linux 文件属性检查

标签 c linux file-io filesystems

我想知道 Linux 内核在哪个阶段检查文件的属性。我的意思的一个例子是,如果我尝试编辑创建的具有不可变属性的文件。内核在什么时候返回错误,指示文件无法更改。如果我想更改属性的工作方式,那么完成此过程的最佳方法是什么。我正在考虑一个内核模块,它将读/写/附加函数重定向到我自己的一系列函数。

谢谢

编辑:

我真正感兴趣的是通过内核模块添加新的文件属性。

最佳答案

它检查 open() 的权限;具有不可变标志,例如,即使也请求读取,也无法打开文件进行写入。例如:

$ python
>>> f = file('/tmp/11', 'r+')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 13] Permission denied: '/tmp/11'
>>> f = file('/tmp/11', 'r')
>>> print f
<open file '/tmp/11', mode 'r' at 0x7f87b9ba1660>

要根据打开操作检查文件属性,请参阅 fs/namei.c 中的 inode_permission()。

关于c - Linux 文件属性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854901/

相关文章:

android - 应用程序如何在没有 root 的情况下访问 Android 6.0(API 级别 23)中 USB OTG 存储上的文件?

c - 由于缺少 pcap 定义,无法创建 ethping 程序

c# - ~ 运算符的功能是什么?

c - 二维数组动态分配函数

c# - System.DllNotFoundException - 如何导入 SO 文件?

linux - awk 脚本中的多个字段分隔符

ruby - 使用 Open() 时,Ruby 为什么以及在哪里写入磁盘

C:如何递归地逐位传输字节?

linux - ptrace:获取 tracee 的图像库?

c++ - 处理输入和输出的C++函数