2011-04-24 5 views
0

私は、(ioctlを使って)ユーザプロセスがそれを呼び出すときにkthreadを開始するlinuxカーネルモジュールを書いています。ユーザプロセスに代わってkthreadでファイルをオープン

ユーザープロセスのbahalfでこのkthreadを使用してファイルを開くことができます。つまり、ユーザープロセスがこのファイル自体にアクセスできるようになります。

答えて

0

これは本当に賢明ではありません。ユーザー空間の処理で読み取れるファイルを開くには、ファイルディスクリプタをそのプロセスに返す必要があります。

カーネルスレッドをユーザースペーススレッドに接続するUNIXドメインソケットペアを返し、カーネルスレッドにSCM_RIGHTSメッセージを使用してそのソケットを介してファイル記述子をオープンさせることができます。

しかし、ioctl()呼び出しで元のプロセスのコンテキストでファイルを開き、そこにファイル記述子を戻す方が適切な場合があります。

関連する問題