我正在 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/