从Linux内核运行外部二进制文件

时间:2012-07-16 11:29:12

标签: c linux binary kernel

在我们的开发团队中,我们正在根据自己的需求修改驱动程序。我们需要它在linux文件系统中执行外部二进制文件(用户空间应用程序)。

这样做是否正确?从linux内核调用二进制文件的最佳方法是什么? system(),popen()?

感谢您的回答。

1 个答案:

答案 0 :(得分:4)

嗯,我找到了解决问题的解决方案。

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