[英]xterm: Can't execvp: No file or directory
我正在用Linux編寫C程序。
我創建了一個流程並將其分叉以創建一個孩子。 我想在這個孩子中運行另一個程序,所以我正在使用execlp
。 但是,該程序必須在獨立的窗口中運行。
if ( (execlp("xterm","xterm","-e","./Child1", "127.0.0.1", (char *) 0)) < 0) {
printf("Failed to Start the Echo Client. Exiting application.");
return 1;
}
Child1.c
是一個簡單程序,與我的當前文件位於同一目錄中。
執行時,代碼運行良好,並且出現xterm窗口,但出現錯誤"xterm: Can't execvp: No file or directory"
你能給我建議一個解決方案嗎?
您的系統可能未安裝xterm
(或用戶的PATH
錯誤)。 您可以測試/usr/bin/xterm
的存在(例如access
syscall),或使用其他方法。 例如,許多Debian或Ubuntu發行版都有x-terminal-emulator
(通常是指向某些精確程序的符號鏈接),您可以使用它代替xterm
。
如果xterm
啟動,則您的程序./Child1
不存在,您應該在access
之前測試它的存在(使用access
)。 如果您只有源代碼./Child1.c
,則應該在之前進行編譯(也許通過運行system("gcc -Wall Child1.c -o Child1")
,然后測試其是否已成功編譯,即測試該system
傳回0,表示Child1
檔案存在且可以執行)。
您應該花一些時間閱讀xterm(1)手冊頁。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.