2012-10-30 50 views
0

我在2.6.22內核中實現了一個系統調用。在我的系統調用我得到的文件描述符這樣的:我該如何寫入內核的只讀文件?

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

不過,我得到一個負數(-13)的FD時,文件名指向一個只讀文件。問題是我需要寫入文件名,即使它是隻讀的或由其他用戶擁有。

所以我的問題是,我怎麼能寫入內核的只讀文件?

是的,我已經閱讀了Linux日誌中的帖子,說從內核寫入文件是一個壞主意。

我仍然需要這樣做。

+0

如果你的問題真的是「我怎樣才能從內核寫入只讀文件?」比這應該是你的問題的標題,而不是「sys_open返回負面文件描述符」。 – TomH

+0

固定標題 –

回答

0

負數不是文件描述符,而是錯誤碼。具體來說,它將是errno.h錯誤編號之一的負面版本。

在這種情況下,因爲您有-13您正在查看錯誤13,即EACCES,這意味着您無權寫入文件。

+0

您的答案開始了一個連鎖反應,讓我在我的代碼中解決了阻止它工作的問題。 –