2

私たちの開発チームでは、独自のニーズに合わせてドライバーを変更しています。Linux ファイルシステムで外部バイナリ (ユーザー空間アプリケーション) を実行するために必要です。

これを行うのは正しいですか?Linuxカーネル内からバイナリを呼び出す最良の方法は何ですか? システム()、ポペン()?

ご回答有難うございます。

4

1 に答える 1

5

さて、私は私の質問に対する非常によく説明された解決策を見つけました。

char *argv[] = { "/usr/bin/logger", "help!", NULL };
static char *envp[] = {
    "HOME=/",
    "TERM=linux",
    "PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL };

return call_usermodehelper( argv[0], argv, envp, UMH_WAIT_PROC );

call_usermodehelperシステムコールを使用する必要があります。例は自明です。ソース:http ://www.ibm.com/developerworks/linux/library/l-user-space-apps/index.html

于 2012-07-17T06:57:05.017 に答える