我正在2.6.22内核中实现系统调用。在我的系统调用中,我获得了这样的文件描述符:
fd = sys_open(filename, O_WRONLY|O_CREAT, 0544);
然而,当文件名指向只读文件时,我得到fd的负数(-13)。问题是我需要写入文件名,即使它只读或由其他用户拥有。
所以我的问题是,如何从内核写入只读文件?
是的,我读过linux期刊中的帖子,说从内核写入文件是个坏主意。
我仍然需要这样做。
答案 0 :(得分:0)
负数不是文件描述符,它是错误代码。具体来说,它将是errno.h
错误号之一的负面版本。
在这种情况下,如果您有-13
,则会看到错误13,即EACCES
,这意味着您无权写入该文件。