5.1
任务的代码片段如下,题目较为简单,主要是通过这个程序熟悉一下fork的用法和父子进程执行的一些相关信息。
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int x = 100;
// pid在两个进程中都有一个值,只不过这两个值不一样
pid_t pid = fork();
// 这里的逻辑判断两个进程都会做,但会执行不同的分支
if(pid > 0)
{
printf("parent(%d): %d\n", getpid(), x);
//exit(0); //父进程退出后,是不会通知子进程的,这个时候子进程会成为孤儿进程,
//最终被init进程收养
sleep(2);
printf("parent(%d): %d\n", getpid(), x);
}
else
{
printf("child(%d): %d\n", getpid(), x);
x = x + 50;
printf("child(%d): %d\n", getpid(), x)