Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何从内核写入只读文件?_Linux_Linux Kernel_Kernel - Fatal编程技术网

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

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错误号

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

fd = sys_open(filename, O_WRONLY|O_CREAT, 0544);
然而,当文件名指向只读文件时,fd会得到一个负数(-13)。问题是我需要写入文件名,即使它是只读的或由其他用户拥有

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

是的,我在《linux杂志》上读到一篇文章说,从内核写入文件是个坏主意


我仍然需要这样做。

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


在本例中,正如您看到的
-13
一样,您看到的是错误13,即
EACCES
,这意味着您没有写入文件的权限。

如果您的问题是“如何从内核写入只读文件?”那么这应该是问题的标题,而不是“sys\u open返回负文件描述符”.你的回答引发了连锁反应,这让我在代码中解决了阻止它工作的问题。