下面是一个使用fork()函数创建进程的示例程序,父进程和子进程各自使用循环方式间隔1秒输出指定的信息。

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

int main() {
    pid_t pid;
    int i;

    pid = fork();

    if (pid < 0) {
        fprintf(stderr, "Fork failed");
        return 1;
    }
    else if (pid == 0) {
        // 子进程
        for (i = 0; i < 5; i++) {
            printf('I am child, pid = %d\n', getpid());
            sleep(1); // 等待1秒
        }
        exit(0);
    }
    else {
        // 父进程
        for (i = 0; i < 5; i++) {
            printf('I am parent, pid = %d\n', getpid());
            sleep(1); // 等待1秒
        }
    }

    return 0;
}

在这个程序中,首先使用fork()函数创建一个新的进程。如果fork()函数返回值小于0,则表示创建进程失败。如果返回值为0,则表示当前代码正在执行的是子进程。否则,返回的是父进程的进程ID。根据返回值的不同,父子进程分别执行不同的逻辑。

子进程中,使用循环方式输出'I am child, pid = ',并使用getpid()函数获取当前进程ID。然后使用sleep(1)函数让子进程暂停1秒。

父进程中,使用循环方式输出'I am parent, pid = ',并使用getpid()函数获取当前进程ID。然后使用sleep(1)函数让父进程暂停1秒。

这样,父子进程就会交替输出指定的信息,每隔1秒输出一次,共输出5次。


原文地址: https://www.cveoy.top/t/topic/pk1u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录