繁体   English   中英

在C中打开一个新的终端窗口

[英]Opening a new terminal window in C

如果我有一个成功编译并生成可执行文件的C程序,当我在预先存在的终端命令提示符中从命令行运行它时,如何指示程序打开一个新的终端窗口? 我假设我使用system()函数,但是那个头是什么,它需要什么样的实际命令?

头文件是stdlib.h ,函数签名是int system(const char *command) 因此,在您的情况下,您可以调用这样的函数来生成一个新的终端窗口:

#include <stdlib.h>

int main(void) {
    int exit_status = system("gnome-terminal");
}

在C中,通常检查大多数函数调用的返回值,以确定是否出现问题或获取有关调用的更多信息。 system()调用返回命令运行的退出状态,并在此处存储在exit_status以供进一步检查。

有关详细信息,请参阅man system

取决于您要打开的终端。 有几个:xterm,konsole,gnome-terminal和其他一大堆。 对于konsole,您将使用:

system("konsole");

终端应用程序通常使用默认路径,因此您无需指定绝对路径。

至于哪个头提供了system() ,您需要做的就是阅读它的手册页。 你用这个命令做到了:

man system

它提供了大量有关system()的文档。 注意不使用system()的原因以及它们对您是否重要。

您必须执行终端仿真程序。 在我的情况下(我有Kubuntu)它是Konsole,所以它将是system("konsole")

如果我希望它在当前工作目录上执行ls,它将是:

system("konsole --hold -e ls .");

你不能用系统做什么来控制产生的终端。 另一方面,如果你使用fork + exec,也许你可以通过重定向它的流来与它交互(dup2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM