0

2.6.22 カーネルでシステム コールを実装しています。私のシステム コールでは、次のようなファイル記述子を取得します。

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

ただし、ファイル名が読み取り専用ファイルを指している場合、fd に負の数 (-13) が返されます。問題は、ファイル名が読み取り専用であるか、別のユーザーが所有している場合でも、ファイル名に書き込む必要があることです。

私の質問はこれです。カーネルから読み取り専用ファイルに書き込むにはどうすればよいですか?

はい、カーネルからファイルへの書き込みは悪い考えであるというLinuxジャーナルの投稿を読みました。

私はまだそれをする必要があります。

4

1 に答える 1

0

負の数はファイル記述子ではなく、エラー コードです。具体的には、errno.hエラー番号の 1 つの負のバージョンになります。

この場合-13、エラー 13 が表示されます。これはEACCES、ファイルへの書き込み権限がないことを意味します。

于 2012-10-30T15:05:30.050 に答える