Linux 如何从内核写入只读文件?
我正在2.6.22内核中实现一个系统调用。在系统调用中,我获得如下文件描述符:Linux 如何从内核写入只读文件?,linux,linux-kernel,kernel,Linux,Linux Kernel,Kernel,我正在2.6.22内核中实现一个系统调用。在系统调用中,我获得如下文件描述符: fd = sys_open(filename, O_WRONLY|O_CREAT, 0544); 然而,当文件名指向只读文件时,fd会得到一个负数(-13)。问题是我需要写入文件名,即使它是只读的或由其他用户拥有 所以我的问题是,如何从内核写入只读文件 是的,我在《linux杂志》上读到一篇文章说,从内核写入文件是个坏主意 我仍然需要这样做。负数不是文件描述符,而是错误代码。具体来说,它将是一个errno.h错误号
fd = sys_open(filename, O_WRONLY|O_CREAT, 0544);
然而,当文件名指向只读文件时,fd会得到一个负数(-13)。问题是我需要写入文件名,即使它是只读的或由其他用户拥有
所以我的问题是,如何从内核写入只读文件
是的,我在《linux杂志》上读到一篇文章说,从内核写入文件是个坏主意
我仍然需要这样做。负数不是文件描述符,而是错误代码。具体来说,它将是一个
errno.h
错误号的负版本
在本例中,正如您看到的
-13
一样,您看到的是错误13,即EACCES
,这意味着您没有写入文件的权限。如果您的问题是“如何从内核写入只读文件?”那么这应该是问题的标题,而不是“sys\u open返回负文件描述符”.你的回答引发了连锁反应,这让我在代码中解决了阻止它工作的问题。