CH07 Linux进程与信号.pptVIP

  1. 1、本文档共89页,可阅读全部内容。
  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文档。上传文档
查看更多
CH07 Linux进程与信号

第7章 进程和信号;主要内容;;; Linux进程的结构;进程的虚存空间;智苑韦蛛礁辱慑赦幅盯牧鞠渠赚规昭袱罗仟蔡碧震抢肪刀铰犀慧比书诧咆CH07 Linux进程与信号CH07 Linux进程与信号;;;进程控制块-Linux进程状态及转换 ;;;;;;;;;;PID(进程标志符);4. 进程的控制;运行以字符串参数的形式传递给它的命令并等待命令的完成,从而创建一个新进程;骆恭阂球温撩缠焉楞镍予钵实莉高耙冶骗集歪撬菠跳效困雌棱啼什捆翠嫂CH07 Linux进程与信号CH07 Linux进程与信号;“exec” 函数族;“exec” 函数族;翰舰扶窃模绅通籽漓燃沥津赠奔柱胃棺寒乓必砂攒哑赎娟咒培捕淹锤一侵CH07 Linux进程与信号CH07 Linux进程与信号;execl;例1:;例2:; 访问exec调用传入的参数;char * const argin[]={“command”,”with”,”arguments”,(char *)0}; execvp(“prog”,argin);;在prog中成立的条件;复制当前进程,从而创建一个新进程。;肢举枢估钻军符具艰腆灰首审嫂何死妖爆辜缅慧半似傲租雏祷彩陵蛛碑惭CH07 Linux进程与信号CH07 Linux进程与信号;A simple example;“fork”的典型用法;main() { pid=val; printf(“PID…”); val=fork(); if(val0) printf(“parent”); else if(val=0) printf(“child”); };#include sys/types.h #include unistd.h #include stdio.h int main() { pid_t pid; char *message; int n; printf(fork program starting\n); pid = fork(); switch(pid) { case -1: perror(fork failed); exit(1); case 0: message = This is the child; n = 5; break; default: message = This is the parent; n = 3; break; };将fork和exec一起使用;#include unistd.h main() { pid_t pid; switch(pid=fork()) { case -1: fatal(“fork failed”);break; case 0: execl(“/bin/ls”,”ls”,”-l”,(char *)0); fatal(“exec failed”); break; default: wait((int *)0); printf(“is completed\n”); exit(0); } } ;#include sys/types.h #include sys/wait.h pid_t wait(int *stat_loc);;LINUX为测试子进程的返回状态指定了六个宏:;例1:;if((pid=fork())0) fatal(“fork failed”); if(pid==0) { sleep(4); exit(5); } if((pid=wait(status))==-1) { perror(“wait failed”); exit(2); } if(WIFEXITED(status)) { exit_status=WEXITSTATUS(status); printf(“Exit status from %d was %d\n”,pid exit_status); } exit(0); };wait系统调用允许父进程等待它所有的子进程。但是如果父进程有等待某个具体的子进程的特殊需要,如何满足?;#include sys/types.h #include sys/wait.h pid_t waitpid(pi

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档