繁体   English   中英

在另一个终端中运行xyz.out文件的C程序

[英]C program to run xyz.out file in another terminal

我可以通过此代码打开一个新终端,

char *argv[]={"gnome-terminal"," -x ","/home/try/",NULL};
if(execvp(argv[0], argv)==-1){
    printf("Error in receiver\n");
    exit(EXIT_FAILURE);
}

这将打开一个路径为/ home / try的终端

我可以通过打开另一个程序

system("./xyz");

我有一个程序说pqr.c,我想通过它打开一个已经存在的程序xyz.c,但是我希望pqr和xyz的输出显示在两个不同的终端上。

这个怎么做?

您可以利用终端程序自身的功能。 大多数(如果不是全部)Unix终端仿真器都可以使用一个参数来告诉他们要运行的程序,而不是用户的外壳程序。

gnome-terminal在这里没有什么不同,它使用最常见的参数执行-e任务。

因此您的代码如下所示:

char *argv[]={
    "gnome-terminal",
    "-x", "/home/try/", // <-- note: no space before or after "-x"
    "-e", "/path/to/your/program",
    NULL};
if(execvp(argv[0], argv)==-1){
    printf("Error in receiver\n");
    exit(EXIT_FAILURE);
}

注意事项:

  • 一旦其内部程序( /path/to/your/program )完成执行,终端将关闭。 为防止这种情况,您可以使程序在终止之前等待一些输入。
  • 如代码片段所述,程序参数周围不应有其他空格。 如果gnome-terminal可以正常使用它们,则仅意味着它在解析参数时会剥离这些空格。

暂无
暂无

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

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