我想從GtkListStore讀取數據並通過phpExcel構建一個excel。首先,我根據GtkListStore構建一個php文件,然後使用php和phpexcel lib編譯和構建execl文件。gtk - 調用外部命令後,如何防止它關閉gtk主窗口
在我的gtk代碼中(使用MinGW環境編譯),我使用execvp(cmd[0], (const char **)cmd);
來調用外部命令-php。實際上,cmd[0]
是php.exe和cmd [1],cmd [2] ...是php的參數。調用php命令後,我的gtk主窗口關閉,它退出我的gtk程序。
如何防止php命令退出主程序?我應該使用別的什麼而不是execvp
?謝謝。
感謝ptomato。我認爲'g_spawn_sync'就是我想要的。但它沒有奏效。我的程序正在'MinGW'中運行。使用'if(!g_spawn_sync(NULL,argv,NULL,0,NULL,NULL,&out,&stder,&exit,&error))'會輸出錯誤信息'無法執行幫助程序(沒有這樣的文件或目錄)'。 'argv'是'char * argv [] = {「ls」,NULL}' - 一個簡單的'ls'命令。它有什麼問題? – warem
確保在標誌中使用'G_SPAWN_SEARCH_PATH',否則將不會找到'ls'命令,因爲它不在當前目錄中。 – ptomato
我剛剛在家裏的純Linux環境中試過上面提到的代碼。它仍然沒有工作。但是,如果我使用絕對路徑,例如「/ bin/ls」,它就可以工作。但是,當我在辦公室裏,在MinGW環境下運行程序時,我嘗試了絕對路徑和相對路徑,但都沒有成功。所以,我現在有點困惑。是關於'MinGW'環境的問題嗎?還有一件事,我在MinGW中使用gtk2.10.11(一個非常舊的版本),並在家中使用gtk2.24.6。這是版本問題嗎? – warem