前言

一、实验要求
掌握子进程的创建、父子进程的通信及其原理。
二、实验内容
1.熟悉 Linux 环境基本使用命令,熟悉使用 vi、gdb、gcc 等编程工具或软件
2.使用系统调用 fork()创建两个子进程,父进程、子进程并发执行,输出并发执行的消息,如:
------------------------------------------
父进程正在执行……
子进程 1 正在执行…….
子进程 2 正在执行…
------------------------------------------
一段时间后,父进程杀死子进程,然后结束自己的进程,分别显示:
------------------------------------------
子进程 1 被父进程杀死
子进程 2 被父进程杀死
父进程结束
------------------------------------------

代码

t.c 文件代码如下

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
        int pid;
        printf("---------------------\n");
        printf("父进程正在执行……\n");
        pid=fork();//父进程A生成子进程1
        if(pid==0){//子进程1执行
                printf("子进程1正在执行……\n");
                sleep(2);
                sleep(3);//等待一段时间
                printf("---------------------\n");
                printf("子进程1被父进程杀死\n");
                exit(0);
        }
        if(pid>0){
                int pid1=fork();//父进程A生成子进程2
                if(pid1==0){//子进程2执行
                        printf("子进程2正在执行……\n");
                        sleep(2);
                        sleep(3);//等待一段时间
                        printf("子进程2被父进程杀死\n");
                        exit(0);
                }
                if(pid1>0){
                        sleep(1);//父进程A休眠一秒
                        printf("---------------------\n");
                        printf("一段时间后\n");
                        sleep(3);//等待一段时间
                        sleep(2);
                        printf("父进程结束\n");
                        printf("---------------------\n");
                        exit(0);
                }
        }
        return 0;
}

运行结果

在这里插入图片描述

代码解释

if 判断语句

详见下面文章
Linux编程基础之创建两个子进程而不创建孙子进程

sleep() 休眠函数

Logo

鸿蒙生态一站式服务平台。

更多推荐