- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE # / 9
宁德师范学院计算机系
实验报告
(2015 — 2016学年 第 二 学期)
课程名称 嵌入式操作系统(Linux)
实验名称 实验 6 编写多进程程序
专 业计算机科学与技术(专升本)
年 级 15级
组 号 09
成员1学号B2015102320 成员1姓名 陈朋朋
成员2学号B2015102323 成员2姓名 林振贤
指导教师 黄进华
实验日期 2016-5-16
实验目的与要求:
通过编写多进程程序,使大家熟练掌握 fork、exec、wait、waitpid 等函数的使用,
进一步理解在 Lin ux中多进程编程的步骤。
实验设备(环境):
每组一台安装VMware Workstation的计算机。
实验内容:
该实验有3个进程,其中一个为父进程, 其余两个是该父进程创建的子进程, 其中一个
子进程运行“ is -I ”指令,另一个子进程在暂停 5s之后异常退出,父进程并不阻塞自己,
并等待子进程的退出信息,待收集到该信息,父进程就返回。
实验步骤:
1、/* daemon_proc.c */
#i nclude stdio.h
#i nclude stdlib.h
#in clude sys/types.h
#in clude uni std.h
#in clude sys/wait.h
#in clude syslog.h
int main (void)
{
pid_t child1,child2;
int i;
childl = fork();
if (childl == 1)
{
perror(child1 fork);
exit(1);
}
else if (childl 0)
{
exit(O);
}
ope nlog(daemon_proc_i nfo, LOG_PID, LOG_DAEMON); setsid();
chdir(/);
umask(O);
for(i = 0; i getdtablesize(); i++)
{
close(i);
}
child2 = fork();
if (child2 == 1)
{
perror(child2 fork);
exit(1);
}
else if (child2 == 0)
{
syslog(LOG」N FO, child2 will sleep for 10s ); sleep(10);
syslog(LOG_INFO, child2 is going to exit!); exit(0);
}
else
{
waitpid(child2, NULL, 0);
syslog(LOG」N FO, childl n oticed that child2 has exited ); closelog();
while(1)
{
sleep(10);
}
}
}
2、/* dameon.c创建守护进程实例*/
#i nclude stdio.h
#i nclude stdlib.h
#i nclude stri ng.h
#in clude vfcn tl.h
#in clude sys/types.h
#in clude uni std.h
#in clude sys/wait.h
int main()
{
pid_t pid;
int i, fd;
char *buf = This is a Daem on\n;
pid = fork();
if (pid 0)
{
prin tf(Error fork\n);
exit(1);
}
else if (pid 0)
{
exit(0);
}
ope nlog(demo_update, LOG_PID, LOG_DAEMON);
setsid();
chdir(/);
umask(O);
for(i = 0; i getdtablesize(); i++)
{
close(i);
}
while(1)
{
if ((fd = ope n(/tmp/daemo n.log, O_CREAT|O_WRONLY|O_APPEND,
0600)) 0)
{
prin tf(Ope n file error n);
exit(1);
}
write(fd, buf, strlen(buf) + 1); close(fd);
sleep(10);
}
exit(0);
3、
13-1 MW- I-1, 审BE.”
t E5l#Locfllh?t jl ii iJt cd SfiG
■讪iMt n 对*M cd 1 4 I -?Wi.Kilhwt I-4-US akt pc ?E i -c -e 曲cm 純讥t
pc -L -fl -□ ixj
您可能关注的文档
- 人工挖孔桩技术及安全交底.docx
- 人才培养研究(mba硕士论文).docx
- 人才管理浅析-毕业设计.docx
- 人教版七上《两汉的经济发展》word教案.docx
- 人教版七上《华夏之祖》word教案.docx
- 人教版七上《感悟青春》word学案.docx
- 人教版七上《生物的特征》word教案.docx
- 人教版七上《练习使用显微镜》word说课稿.docx
- 人教版七年级思想品德下册教学总结.docx
- 人教版三年级数学下册期末试卷4.docx
- 《GB/T 12668.7202-2024调速电气传动系统 第7-202部分:电气传动系统的通用接口和使用规范 2型规范说明》.pdf
- 《GB/T 15692-2024制药机械 术语》.pdf
- GB/T 15692-2024制药机械 术语.pdf
- 中国国家标准 GB/T 15692-2024制药机械 术语.pdf
- GB/T 19633.1-2024最终灭菌医疗器械包装 第1部分:材料、无菌屏障系统和包装系统的要求.pdf
- 中国国家标准 GB/T 19633.1-2024最终灭菌医疗器械包装 第1部分:材料、无菌屏障系统和包装系统的要求.pdf
- 《GB/T 19633.1-2024最终灭菌医疗器械包装 第1部分:材料、无菌屏障系统和包装系统的要求》.pdf
- 《GB/T 30117.1-2024非相干光产品的光生物安全 第1部分:通用要求》.pdf
- 《GB/T 33348-2024高压直流输电用电压源换流器阀 电气试验》.pdf
- GB/T 33348-2024高压直流输电用电压源换流器阀 电气试验.pdf
文档评论(0)