操作系统实验之进程管理
一、实验要求掌握子进程的创建、父子进程的通信及其原理。二、实验内容1.熟悉 Linux 环境基本使用命令,熟悉使用 vi、gdb、gcc 等编程工具或软件2.使用系统调用 fork()创建两个子进程,父进程、子进程并发执行,输出并发执行的消息
·
前言
一、实验要求
掌握子进程的创建、父子进程的通信及其原理。
二、实验内容
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() 休眠函数
更多推荐
已为社区贡献1条内容
所有评论(0)