2011-02-09 18 views
1

執行終端來運行一個C程序,你做這樣的事情從C程序

bash> gcc test.c -o test 

然後

bash> ./test 

我該怎麼辦,使test.c的執行在另一個窗口的終端?

+1

你是什麼意思?您使用什麼操作系統? – Spacedman 2011-02-09 22:04:57

回答

0

取決於你在哪個系統,你必須記住哪個終端,但在這裏是如何做到這一點,如果你對GNOME(ubuntu的舉例)

gnome-terminal -x sh -c "./test" 

如果你不想窗口後./test完成後立即關閉,你做

gnome-terminal -x sh -c "./test; cat" 
0

要打開一個窗口,一個新的終端,或你想做些什麼? 你的問題不是很清楚。

如果你想運行一些命令,你需要應付sys調用來啓動一個新的進程。

在Windows上有system()函數,但我不確定它是否存在於Linux或其他posix系統上。

2

的xterm -e 「./test」

這將在一個新的xterm窗口中執行 '測試'。當然假設Linux。

0

根據您使用的單詞terminal即時猜測您正在使用osx。

您可以使用AppleScript的獲取行爲:

tell application "Terminal" 
activate 
do script with command "cd _directory_; ./test" 
end tell 

如果你想程序啓動一個窗口,有程序調用POPEN啓動命令[或寫入到一個臨時文件和啓動腳本]

2

您可以派生一個新進程並使用system()函數。這將適用於大多數Linux發行版。只需檢查終端屬性即可知道執行新終端的命令。 「gnome-terminal」適用於我(Ubuntu,Redhat)。

int main() 
{ 
     if(!fork())// child process 
     system("gnome-terminal"); 
     else 
     { 
       //do rest of the things here in parent process...... 
     } 

} 

fork()後,一個新的終端窗口將作爲一個單獨的進程打開。