linux - 如何从内核写入只读文件?

标签 linux linux-kernel kernel

我正在 2.6.22 内核中实现系统调用。在我的系统调用中,我获得如下文件描述符:

fd = sys_open(filename, O_WRONLY|O_CREAT, 0544);

但是,当 filename 指向只读文件时,我得到的 fd 为负数 (-13)。问题是我需要写入文件名,即使它是只读的或由其他用户拥有。

所以我的问题是,如何从内核写入只读文件?

是的,我读过 Linux 杂志上的一篇文章,其中说从内核写入文件是一个坏主意。

我还需要这样做。

最佳答案

负数不是文件描述符,而是错误代码。具体来说,它将是 errno.h 错误号之一的负版本。

在本例中,由于您有 -13,您将看到错误 13,即 EACCES ,这意味着您没有写入该文件的权限。

关于linux - 如何从内核写入只读文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141829/

相关文章:

c++ - 可以将 2.1834e+14 转换为实数

linux - 尽管模块已卸载,为什么设备仍存在于/proc/devices中

linux - CPU IO端口如何真正工作?

linux-kernel - Eudyptula 挑战列表

linux - 免费/开放 h.264 视频解码库? (非 GPL)

c++ - Cout 给出了一个奇怪的输出

c - 非root用户的setuid等效项

linux - UBIFS中UBI的腐败

linux - 无需重启即可升级 Linux 内核模块

ruby-on-rails - 如何在 Elastic Beanstalk 启动时守护 Rails Rake 任务