2

だから私は次のCコードを持っています:

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main(){
    int i = 0, n;
    n = 5;
    pid_t pid;
    printf("i=%d Right before the loop\n", i, getpid(), getppid());
    for (i = 0; i < n; i++){
        pid = fork();
        if (pid <= 0){
            printf("something happens in loop #%d. pid = %d\n", i, pid);
            break;
        }
        printf("End of loop #%d\n", i);
    }

    printf("i=%d My process ID = %d and my parent's ID = %d\n", i, getpid(), getppid());

    return 0;
}

質問は 1 つだけです。

printf("i=%d My process ID = %d and my parent's ID = %d\n", i, getpid(), getppid());

ループ内にあるかのように何度も実行されますか? いろいろ調べてみましたが原因がわかりません。

4

2 に答える 2