第五次实验报告.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五次实验报告 第五次实验报告 一、实验目的: 1、掌握进程相关的基本概念; 2.掌握Linux 下的进程结构; 3、掌握Linux 下进程创建及进程管理; 4、掌握Linux 下进程创建相关的系统调用; 5、掌握守护进程的概念; 6、掌握守护进程的启动方法; 7、掌握守护进程的输出及建立方法; 8、学会编写多进程程序; 9、学会编写守护进程。 二、实验内容: 1、该实验有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s 之后异常退出,父进程并不阻塞自己,并等待子进程的退出信息,待收集到该信息,父进程就返回。 2、在该实验中,读者首先建立起一个守护进程,然后在该守护进程中新建一个子进程,该子进程暂停10s,然后自动退出,并由守护进程收集子进程退出的消息。在这里,子进程和守护进程的退出消息都在“/var/log/messages”中输出。子进程退出后,守护进程循环暂停,其间隔时间为10s。 三、实验步骤: 1、(1)编写代码: #include #include #include #include #include int main(void) { pid_t child1,child2,child; /*创建两个子进程*/ child1 = fork(); child2 = fork(); /*子进程1的出错处理*/ if( child1 == -1 ){ perror(\exit(1); } /*在子进程1中调用execlp函数*/ else if( child1 == 0 ){ printf(\if(execlp(\perror(\} /*子进程2的出错处理*/ if( child2 == -1 ){ perror(\exit(1); } /*在子进程2中使其暂停5s*/ else if( child2 == 0 ){ printf(\sleep(5); exit(0); } /*在父进程中等待子进程2的退出*/ else{ printf(\ do{ child = waitpid( child2, NULL, WNOHANG ); if( child ==0 ){ printf(\sleep(1); } }while( child == 0 ); if( child == child2 ) printf(\else printf(\} } (2)首先在宿主机上编译调试该程序: [root@localhost process]# gcc exc.c ?Co exc (3)在确保没有编译错误后,使用交叉编译该程序: [root@localhost process]# arm-linux-gcc exc.c ?Co exc (4)将生成的可执行程序下载到目标板上运行。 2、(1)编写代码: /*exc2.c实验二源码*/ #include #include #include #include #include #include #define MAXFILE 65535 int main(void) { pid_t child1,child2; int i; child1 = fork(); /*创建子进程1*/ if( child1 == -1 ){ perror(\exit(1); } else if( child1 0 ) exit( 0 ); /*打开日志服务*/ openlog(\/*以下几步是编写守护进程的常规步骤*/ setsid(); chdir( \ umask( 0 ); for( i = 0 ; i MAXFILE ; i++ ) { close( i ); } /*创建子进程2*/ child2 = fork(); if( child2 == -1 ){ perror(\exit(1); } else if( child2 == 0 ){ /*在日志中写入字符串*/ syslog( LOG_INFO, \sleep(10); syslog( LOG_INFO, \exit(0); } else{ waitpid( child2, NULL, 0); syslog( LOG_INFO , \/*关闭日志服务*/ closelog(

文档评论(0)

180****8756 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体盛世风云(深圳)网络科技有限公司
IP属地广东
统一社会信用代码/组织机构代码
91440300069269024M

1亿VIP精品文档

相关文档