从c程序执行终端

时间:2011-02-09 22:02:42

标签: c bash terminal system exec

要运行c程序,你可以这样做

bash> gcc test.c -o test

然后

bash> ./test

如何让test.c在另一个窗口中执行终端?

5 个答案:

答案 0 :(得分:2)

xterm -e“./ test”

这将在新的xterm窗口中执行'test'。当然假设Linux。

答案 1 :(得分: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()之后,新的终端窗口将作为单独的进程打开。

答案 2 :(得分:0)

取决于您所使用的系统以及您所关注的终端,但如果您使用的是gnome(例如ubuntu),请按照以下步骤进行操作

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

如果您不希望在./test完成后立即关闭窗口,则执行

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

答案 3 :(得分:0)

您想要为新终端打开一个窗口,或者您想要做什么? 你的问题不是很清楚。

如果要运行某些命令,则需要处理sys调用以启动新进程。

在Windows上有system()函数,但我不确定它是否存在于Linux或其他posix系统上。

答案 4 :(得分:0)

根据您对terminal这个词的使用,我猜你正在使用osx。

您可以使用AppleScript来获取行为:

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

如果您希望程序启动一个窗口,请让程序调用popen来启动命令[或写入临时文件并启动脚本]