如何建立多條執行緒,形成程序扇(多叉數)

Jiangson發表於2024-04-23

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int Fun(int num);
int Fun(int num)
{
    pid_t pid;
    printf("It's  a father process, it will have %d children!.And the ID is %ld.\n",num,(long)getpid());
    for(int i=0; i<num; i++)
    {
        pid = fork();
        if(pid == -1)
        {
            perror("fork...");
            return -1;
        }
        else if(pid == 0)
        {
            printf("This is a child process,the ID is:%ld.And then it's father's ID is:%ld\n",(long)getpid(),(long)getppid());
            break;
        }
        else
        {
            sleep(3);
            continue;
        }
    }

    return 0;
}

int main()
{
    int num;
    printf("Please input the number of creating children process.\n");
    scanf("%d",&num);

    if(Fun(num) == -1)
    {
        printf("Creating failed!\n");
        return -1;
    }
    return 0;
}
...

相關文章