【发布时间】:2018-04-05 20:26:03
【问题描述】:
我一直在练习 C 中的一个练习,我必须创建一个简单的过程树。基本上,主进程使用 fork() 创建一个子进程,然后结束。子进程打印一条消息,创建自己的子进程并结束,此过程迭代 3 次。好吧,显然它在执行的某个地方工作正常我得到了一个奇怪的输出(它打印了可执行文件所在的目录)。我正在共享代码和终端的输出。 (输出消息是西班牙语,对此感到抱歉):
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
int i;
pid_t cpid[3];
printf("¡Hola, soy el proceso padre!\n");
for (i=0;i<3; i++){
cpid[i] = fork();
if (cpid[i] == 0){
printf("¡Hola, soy el proceso hijo N°%i!\n",i+1);
}else{
printf ("Terminando proceso %i....\n",i);
exit (EXIT_SUCCESS);
}
}
printf ("Terminando proceso %i....\n",i);
return 0;
}
这是我的输出:
fuhranku@frank-ubuntuVB:~/Escritorio/Práctica #1 - Solución/Ejercicios programados$ gcc -o foo ejercicio23.c
fuhranku@frank-ubuntuVB:~/Escritorio/Práctica #1 - Solución/Ejercicios programados$ ./foo
¡Hola, soy el proceso padre!
Terminando proceso 0....
fuhranku@frank-ubuntuVB:~/Escritorio/Práctica #1 - Solución/Ejercicios programados$ ¡Hola, soy el proceso hijo N°1! <---- WEIRD OUTPUT
Terminando proceso 1....
¡Hola, soy el proceso hijo N°2!
我不知道为什么它在执行过程中显示可执行文件所在的目录,知道原因吗?
谢谢! :-)
【问题讨论】:
标签: c ubuntu terminal output fork