我使用 fork() 来使不同的进程运行并打印一条简单的消息。代码的结果让我感到困惑。看看代码:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <math.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <time.h>
int main(void)
{
fork();
fork();
fork();
fprintf(stderr,"hello world\n");
}
输出是:
mario@ubuntu:~/OS$ ./main
hello world
hello world
hello world
hello world
hello world
hello world
mario@ubuntu:~/OS$ hello world
hello world
mario@ubuntu:~/OS$
请注意,我在终端的第一行执行程序,但输出不是我所期望的。请帮我!提前致谢!如果用 printf("......") 更改 fprintf,也会发生同样的事情
编辑:我不明白为什么打印是这样的。终端线之前的六个,它旁边的一个和它后面的 1 个......