[英]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.