在我们的开发团队中,我们正在根据自己的需求修改驱动程序。我们需要它在linux文件系统中执行外部二进制文件(用户空间应用程序)。
这样做是否正确?从linux内核调用二进制文件的最佳方法是什么? system(),popen()?
感谢您的回答。
答案 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