2016-03-05 77 views
3

我想知道如何通過execl調用Xterm。例如,對於下面的代碼如何運行Xterm

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <string.h> 
#include <fcntl.h> 
#include <errno.h> 
#include <sys/types.h> 
#include "util.h" 
#define XTERM_PATH "/usr/bin/xterm" 
#define XTERM "xterm" 
int main() { 
    int exStatus; 
    pid_t childpid; 
    childpid = fork(); 
    if (childpid == -1) { 
     perror("Failed to fork"); 
     exit(0); 
    } 
    if (childpid == 0) {  // Child process 

     exStatus = execl(XTERM_PATH, XTERM, "+hold", "-e", "./shi", "shi", (char *)NULL); 
     if (exStatus == -1) { 
      perror("Failed to execute shell"); 
      exit(0); 
     } 
    } 
    else { 
     wait(NULL); 
    } 
    return 0; 
} 

凡市只是一個簡單的程序打印出的HelloWorld到屏幕上。運行該程序後,Xterm沒有顯示出來。我不知道出了什麼問題。

回答

2

如果使用-hold(不+hold)任何近期xterm版本,和你的程序真的是在當前目錄("./shi"所示),然後一個xterm應該顯示出來。