簡體   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