我被賦予分叉n個進程的任務。進程運行xterm的實例時出現叉錯誤
對於每個過程中,它必須啓動/斌/ xterm的
我正在與產生n個處理和打開的xterm實例的部分完成的一個實例。
當我試着運行程序時,我得到了這個輸出。 (錯誤以粗體顯示)
Number of process to open is 1.
Child (1): 3457
/bin/xterm: Xt error: Can't open display:
/bin/xterm: DISPLAY is not set
我的代碼如下。
我試着googleing的錯誤,但到目前爲止我還沒有運氣。
任何解決方案?
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int num = atoi(argv[1]);
printf("Number of process to open is %d.\n", num);
int pid;
int i;
for(i = 0; i < num; i++)
{
pid = fork();
if(pid < 0) {
printf("Error");
exit(1);
} else if (pid == 0) {
printf("Child (%d): %d\n", i + 1, getpid());
char * const argv[] = {"/bin/xterm", NULL};
char * const envp[] = {NULL};
int rc = execve ("/bin/xterm", argv, envp);
exit(0);
} else {
wait(NULL);
}
}
return 0;
}
你unecessrily等待每個孩子終止! – Nullpointer
爲什麼要在argv []的值不變的時候賦值? – enedil
@Nullpointer謝謝你的提示。我會刪除wait(NULL).. :) –