关于c语言的线程和进程

要求写个进程我是不是差很多代码呀
#include 
#include 

#define seconds 10
//Lux Ren
//assignment 2

int main() {
    srand(time(NULL));
    for (int i = 0; i <= seconds; i++)
    {
        int  r = rand() % 10;
        printf("process %d is done after sleeping for %d seconds", r, i);
        printf("\n");
    }
    return 0;

}

用C语言编写一个程序,从命令行中获取一个数字,并创建与命令行中指定数量相同的新进程。每个进程应该

等待一个随机的时间(在1到10秒之间),然后打印一行并退出(在使用rand()时要小心--如果你没有给你的随机数发生器播种一个快速变化的值你所有的随机数可能会从同一个种子开始)。

img

代码如下,还望采纳:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <sys/wait.h>

int main(int argc, char *argv[]) {
    // 获取数字
    int num;
    sscanf(argv[1], "%d", &num);
    
    // 初始化随机数生成器
    srand(time(NULL));
    
    for (int i = 0; i < num; i++) {
        // 创建新进程
        pid_t pid = fork();
        if (pid == 0) {
            // 子进程等待随机时间
            int sleepTime = rand() % 10 + 1;
            sleep(sleepTime);
            
            // 打印并退出
            printf("Child process %d exited after waiting %d seconds\n", i + 1, sleepTime);
            exit(0);
        }
    }
    
    // 等待所有子进程退出
    int status;
    for (int i = 0; i < num; i++) {
        wait(&status);
    }
    
    return 0;
}


请注意,在运行程序时需要从命令行中指定数字,例如:
./program 5