2012-07-16 66 views
2

在我們的開發團隊中,我們正在爲自己的需要修改驅動程序。我們需要它在linux文件系統中執行外部二進制文件(用戶空間應用程序)。從Linux內核運行外部二進制文件

這樣做是正確的嗎?從Linux內核中調用二進制文件的最佳方式是什麼? system(),popen()?

感謝您的回答。

+1

二進制是一個內核模塊或用戶空間應用????需要更多關於外部二進制的說明。 – Jeyaram 2012-07-16 11:32:06

+0

用戶空間應用程序。 – fazineroso 2012-07-16 11:47:01

+0

我希望[這](http://stackoverflow.com/questions/6861909/popen-vs-system-is-popen-as-evil-as-system)會幫助你。 – Jeyaram 2012-07-16 11:56:36

回答

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