父进程返回执行:for(i=0;iv5;i++){printf(Iamparent.\n);sleep(1);}子进程返回执行:for(i=0;i<5;i++){printf(Iamson.\n);sleep(1);}实验三 Linux 进程的创建和父子进程同步1. 实验目的(1)掌握 C 语言源程序中使用 Linux 所提供的系统调用界面的方法;(2)掌握 Linux 中子进程创建方法以及调度执行情况,理解进程与程序的区别;(3)使用系统调用 wait()和 exit(),实现父子进程同步;(4)了解 Linux 提供的 C 编译器 gcc 的使用;(5)进一步掌握 vi 的使用。2. 实验预备知识(1)vi 的使用;(2)C 编译器 gcc 的使用。3. 实验内容(1)父进程创建子进程实现父进程创建子进程,返回后父子进程都分别循环输入字符串“Iamparent."或“Iamchild.”5 次,每输出一次后使用 sleep(1)延时 1秒,然后进入下一次循环,如图所示。将该源程序编译连接后执行,观察并分析运行结果。#include#include#includeintmain(){intn,i;KW1U»MBTsl¥|{liSflNWhHi]MparHit.1**5#■-vu9.cLa.■!■!?皿:却:切rq.rxifnrrhLa/lap[!iG:-M:l^]ICC3?■*L].«■*aH-Mi--*•和!■帀卜 I1f:B:I-Im>?-J.pnn«RHEXHJRSBn=fork();if(n>0){for(i=0;i<5;i++){printf("Iamparent.\n");sleep(1);}}else{for(i=0;i<5;i++){printf("Iamson.\n");sleep(1);}}return0;}(2) 进程家族树1)在源程序中连续使用 4 个 fork(),而不使用 if()进行返回值的判断,在 4 个 fork()语言后面输出字符“A”。观察分析该程序编译连接执行后的输出结果。#includer[卜 i•Hl“.'■««>(s“/W『H:斗肝】5 进程显示数字 5。#ineludevstdio.h>#include#includevoidmain(){fork();fork();fork();fork();putchar('A');}#includeintmain(){//12)创建结构为下图家族树的相关进程,其中,1 进程显示数字 1,2 进程4 进程显示数字 4,ZM1■岡事■间田[股 Hfl|5:iEM讣*[1T:93;-U]LnrapUT;刃;£_|Ln[3T!!U:SL]C:prmTi%■I;prWCfiXIj6⑷ 下午priflEf|\t|:«IL'.I:|旳牛㈣如⑷虫 ・ 《 RIMCmvi 帕 窮 dflrSiWH|■i 怙 llu■■ 亡ifijatLwl«iPUIC'l^dB