C语言fork()函数创建进程示例:父子进程交替输出信息
下面是一个使用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 著作权归作者所有。请勿转载和采集!