C forks及其功能?
我有以下代码,有人问我“A”、“B”、“C”、“D”、“E”将打印多少次C forks及其功能?,c,fork,C,Fork,我有以下代码,有人问我“A”、“B”、“C”、“D”、“E”将打印多少次 fun() { printf("A"); fork(); printf("B"); if (fork() != 0) { printf("C"); fork(); printf("D"); } printf("E"); } 因此,它应该是: A A B E 我不确定我上面的答案是否正确?如果(fork()!=0)行做什么?来自: 成功时,子进程的PID在父进程中返
fun() {
printf("A");
fork();
printf("B");
if (fork() != 0) {
printf("C");
fork();
printf("D");
}
printf("E");
}
因此,它应该是:
A
A
B
E
我不确定我上面的答案是否正确?如果(fork()!=0)行做什么?来自:
成功时,子进程的PID在父进程中返回,0在子进程中返回。失败时,在父进程中返回-1,不创建子进程,并且错误号设置正确
如果(fork()!=0){…}行正在检查以确保当前进程不是原始fork进程的子进程。只有父进程将执行此块中的代码
这是因为
fork()。两个分叉中的每一个分叉,但只有两个父分叉进入if语句并打印c。这两个fork和所有4个procs都打印了d。然后,6个进程中的每一个(来自if fork的两个子进程和来自if print e的4个线程)
您无法确定顺序,但每个字母的编号为:
x1
b x2
cx2
d x4
e x6