欢迎来到天天文库
浏览记录
ID:39454718
大小:219.02 KB
页数:11页
时间:2019-07-03
《Linux 多进程程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告实验名称:Linux多进程程序设计实验目的熟悉Linux下多进程编程的方法,掌握Linux下fork、exec、wait、waitpid等进程相关的系统调用使用方法。一、实验内容在父进程中创建两个子进程,其中一个子进程运行“ls-l”指令,另一个子进程在暂停5s之后退出。父进程先用阻塞方式等待第一个子进程的结束,然后用非阻塞方式等待第二个子进程的退出,待收集到第二个子进程结束的信息,父进程就返回。二、实验内容1、程序说明、流程图等父进程首先创建一个子进程A,采用组赛模式等待进程A结束,然后创建进程B,采用非阻塞模式等待B进程结束,然后父进程结束A进程运行p
2、s-efB进程等待5S自动结束父进程会铺货进程A,B的结束,然后给予相应的提示。1、程序代码#include#include#include#include#includeintmain(void){pid_tpa,pb,pr;pa=fork();if(pa<0){perror("forkaerror!");}elseif(pa==0){sleep(1);printf("processAisrunning.......");if(execlp("ps",
3、"ps","-ef",NULL)<0){perror("execlpaerror!");}exit(0);}else{printf("thisisparentprocess!");printf("parentprocessiswatingforchildren!");printf("wating......wating.......");pr=wait(NULL);if(pr==pa){printf("parentcatchedthechildA!");}printf("creatprocessB!");pb=fork();if(pb<0){p
4、rintf("errorforkB");}elseif(pb==0){printf("Bprocessisrunning(5S)!");sleep(5);printf("Bprocessend!");exit(0);}else{do{pr=waitpid(pb,NULL,WNOHANG);if(pr==0)/*Bnotend*/{printf("fatheriswatingforchildB!");sleep(1);}}while(pr==0);/*waitforprocessB*/if(pr==pb)printf("childBverywell!
5、");elseprintf("mychildBlost!");}}}1、运行测试输出的结果thisisparentprocess!parentprocessiswatingforchildren!wating......wating.......processAisrunning.......UIDPIDPPIDCSTIMETTYTIMECMDroot10002:57?00:00:01/sbin/initroot20002:57?00:00:00[kthreadd]root32002:57?00:00:00[ksoftirqd/0]root52002:57?0
6、0:00:00[kworker/u:0]root62002:57?00:00:00[migration/0]root72002:57?00:00:00[cpuset]root82002:57?00:00:00[khelper]root92002:57?00:00:00[netns]root102002:57?00:00:00[sync_supers]root112002:57?00:00:00[bdi-default]root122002:57?00:00:00[kintegrityd]root132002:57?00:00:00[kblockd]root1420
7、02:57?00:00:00[kacpid]root152002:57?00:00:00[kacpi_notify]root162002:57?00:00:00[kacpi_hotplug]root172002:57?00:00:00[ata_sff]root182002:57?00:00:00[khubd]root192002:57?00:00:00[md]root222002:57?00:00:00[khungtaskd]root232002:57?00:00:00[kswapd0]root242002:57?00:00:00[ksmd]root252002:
8、57?00
此文档下载收益归作者所有