linux 多进程程序设计

上传人:小** 文档编号:90966550 上传时间:2019-06-20 格式:DOC 页数:11 大小:219KB
返回 下载 相关 举报
linux 多进程程序设计_第1页
第1页 / 共11页
linux 多进程程序设计_第2页
第2页 / 共11页
linux 多进程程序设计_第3页
第3页 / 共11页
linux 多进程程序设计_第4页
第4页 / 共11页
linux 多进程程序设计_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《linux 多进程程序设计》由会员分享,可在线阅读,更多相关《linux 多进程程序设计(11页珍藏版)》请在金锄头文库上搜索。

1、实验报告实验名称:Linux 多进程程序设计一、 实验目的熟悉Linux下多进程编程的方法,掌握Linux下fork、exec、wait、waitpid等进程相关的系统调用使用方法。二、 实验内容在父进程中创建两个子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s之后退出。父进程先用阻塞方式等待第一个子进程的结束,然后用非阻塞方式等待第二个子进程的退出,待收集到第二个子进程结束的信息,父进程就返回。三、 实验内容1、 程序说明、流程图等父进程首先创建一个子进程A,采用组赛模式等待进程A结束,然后创建进程B,采用非阻塞模式等待B 进程结束,然后父进程结束 A进程运行 ps -e

2、f B进程等待5S 自动结束 父进程会铺货进程A,B的结束,然后给予相应的提示。2、 程序代码#include #include #include #include #include int main(void )pid_t pa,pb,pr;pa=fork();if(pa0)perror(fork a error!);else if(pa=0)sleep(1);printf(process A is running.n);if(execlp(ps,ps,-ef,NULL)0)perror(execlp a error!);exit(0);else printf(this is parent

3、process!n);printf(parent process is wating for children !n);printf(wating .wating.n);pr=wait(NULL);if(pr=pa)printf(parent catched the child A!n);printf(creat process B!n);pb=fork();if(pb0)printf(error fork Bn);else if(pb=0)printf(B process is running( 5 S )!n);sleep(5);printf(B process end!n);exit(0

4、);else dopr=waitpid(pb,NULL,WNOHANG);if(pr=0)/*B not end*/printf(father is wating for child B!n);sleep(1);while(pr=0);/*wait for process B*/if(pr=pb)printf(child B very well!n);else printf(my child B lost!);3、 运行测试输出的结果this is parent process!parent process is wating for children !wating .wating.proc

5、ess A is running.UID PID PPID C STIME TTY TIME CMDroot 1 0 0 02:57 ? 00:00:01 /sbin/initroot 2 0 0 02:57 ? 00:00:00 kthreaddroot 3 2 0 02:57 ? 00:00:00 ksoftirqd/0root 5 2 0 02:57 ? 00:00:00 kworker/u:0root 6 2 0 02:57 ? 00:00:00 migration/0root 7 2 0 02:57 ? 00:00:00 cpusetroot 8 2 0 02:57 ? 00:00:

6、00 khelperroot 9 2 0 02:57 ? 00:00:00 netnsroot 10 2 0 02:57 ? 00:00:00 sync_supersroot 11 2 0 02:57 ? 00:00:00 bdi-defaultroot 12 2 0 02:57 ? 00:00:00 kintegritydroot 13 2 0 02:57 ? 00:00:00 kblockdroot 14 2 0 02:57 ? 00:00:00 kacpidroot 15 2 0 02:57 ? 00:00:00 kacpi_notifyroot 16 2 0 02:57 ? 00:00

7、:00 kacpi_hotplugroot 17 2 0 02:57 ? 00:00:00 ata_sffroot 18 2 0 02:57 ? 00:00:00 khubdroot 19 2 0 02:57 ? 00:00:00 mdroot 22 2 0 02:57 ? 00:00:00 khungtaskdroot 23 2 0 02:57 ? 00:00:00 kswapd0root 24 2 0 02:57 ? 00:00:00 ksmdroot 25 2 0 02:57 ? 00:00:00 fsnotify_markroot 26 2 0 02:57 ? 00:00:00 aio

8、root 27 2 0 02:57 ? 00:00:00 ecryptfs-kthrearoot 28 2 0 02:57 ? 00:00:00 cryptoroot 32 2 0 02:57 ? 00:00:00 kthrotldroot 34 2 0 02:57 ? 00:00:00 scsi_eh_0root 35 2 0 02:57 ? 00:00:01 scsi_eh_1root 36 2 0 02:57 ? 00:00:00 kworker/u:3root 39 2 0 02:57 ? 00:00:00 kmpathdroot 40 2 0 02:57 ? 00:00:00 kmp

9、ath_handlerdroot 41 2 0 02:57 ? 00:00:00 kondemandroot 42 2 0 02:57 ? 00:00:00 kconservativeroot 160 2 0 02:57 ? 00:00:00 scsi_eh_2root 176 2 0 02:57 ? 00:00:00 jbd2/sda1-8root 177 2 0 02:57 ? 00:00:00 ext4-dio-unwritroot 224 1 0 02:57 ? 00:00:00 upstart-udev-bridge -daemonroot 235 1 0 02:57 ? 00:00

10、:00 udevd -daemonsyslog 329 1 0 02:57 ? 00:00:00 rsyslogd -c4102 334 1 0 02:57 ? 00:00:00 dbus-daemon -system -fork -avahi 361 1 0 02:57 ? 00:00:00 avahi-daemon: running hao-Viravahi 362 361 0 02:57 ? 00:00:00 avahi-daemon: chroot helperroot 375 1 0 02:57 ? 00:00:00 NetworkManagerroot 383 1 0 02:57

11、? 00:00:00 /usr/sbin/modem-managerroot 392 1 0 02:57 ? 00:00:00 /usr/lib/policykit-1/polkitdroot 437 1 0 02:57 ? 00:00:00 /sbin/wpa_supplicant -u -sroot 445 2 0 02:57 ? 00:00:00 kpsmousedroot 506 2 0 02:57 ? 00:00:00 iprtroot 526 1 0 02:57 ? 00:00:00 upstart-socket-bridge -daemonroot 606 1 0 02:57 tty4 00:00:00 /sbin/getty -8 38400 tty4root 614

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号