当前位置: 首页 > news >正文

建设银行租房网站湖北做教育培训网站需要资质么

建设银行租房网站湖北,做教育培训网站需要资质么,视频剪辑制作教学,网上注册公司营业执照流程文章目录进程等待进程等待的必要性如何进程等待waiwaitpid验证进程等待 ​ 我们知道fork函数可以创建一个子进程#xff0c;而子进程通常是替父进程完成一些任务#xff0c;而父进程在fork之后需要通过wait/waitpid等待子进程退出。这就是进程等待 进程等待的必要性 通过获… 文章目录进程等待进程等待的必要性如何进程等待waiwaitpid验证进程等待 ​ 我们知道fork函数可以创建一个子进程而子进程通常是替父进程完成一些任务而父进程在fork之后需要通过wait/waitpid等待子进程退出。这就是进程等待 进程等待的必要性 通过获取子进程退出时的反馈信息可以知道子进程执行的结果如何、可以保证时序问题即先退出子再退出父进程退出时会先进入僵尸状态而僵尸状态不能被kill杀掉还浪费维护成本占用空间但不使用等等危害内存泄漏需要通过父进程wait/waitpid释放该子进程的资源 所以进程等待就是子进程替父进程执行一些任务后结束父进程要读取子进程执行结束后的反馈的等待就是进程等待 如何进程等待 这里需要用到如下两个函数 wai #include sys/types.h #include sys/wait.h int wait(int *status)如果成功wait会返回被收集的子进程的进程ID如果调用进程没有子进程调用就会失败此时wait返回-1同时errno被置为ECHILD。 这里只讲waitpidwait比waitpid简单会了下面的就会这个了 waitpid #include sys/types.h #include sys/wait.h pid_t waitpid(pid_t pid,int *status,int options);参数pid功能小于 -1等待进程组号为pid绝对值的任何子进程。等于 -1等待任何子进程此时的waitpid()函数就退化成了普通的wait()函数。等于 0等待进程组号与目前进程相同的任何子进程也就是说任何和调用waitpid()函数的进程在同一个进程组的进程。大于 0等待进程号为pid的子进程。 参数status输出型参数 宏功能WIFEXITED(status)如果子进程正常结束它就返回真否则返回假。WEXITSTATUS(status)如果WIFEXITED为真则可以用该宏取得子进程exit()返回的退出码。WIFSIGNALED(status)如果子进程因为一个未捕获的信号而终止它就返回真否则返回假。WTERMSIG(status)如果WIFSIGNALED为真则可以用该宏获得导致子进程终止的信号码。WIFSTOPPED(status)如果当前子进程被暂停了则返回真否则返回假。WSTOPSIG(status)如果WIFSTOPPED为真则可以使用该宏获得使子进程暂停的信号代码。 status这里只用16个bit位正常退出时可以读取到退出码程序异常只能读取到终止信号 wait和waitpid都有一个status参数该参数是一个输出型参数由操作系统填充。 如果传递NULL表示不关心子进程的退出状态信息。 否则操作系统会根据该参数将子进程的退出信息反馈给父进程。 status不能简单的当作整形来看待可以当作位图来看待具体细节如下图 正常执行代码退出可以收到退出码而退出信号为0 而代码异常没跑完可以读取到终止信号但没有退出码 options参数 参数options提供了一些另外的选项来控制waitpid()函数的行为。如果不想使用这些选项则可以把这个参数设为0。一般常用的有两个WNOHANG 如果pid指定的子进程没有结束则waitpid()函数立即返回0而不是阻塞在这个函数上等待如果结束了则返回该子进程的进程号。WUNTRACED如果子进程进入暂停状态则马上返回。 waitpid的返回值当返回正常时waitpid返回收集到的子进程的进程ID如果设置了WNOHANG,而调用中waitpid发现自己没有已退出的子进程可收集则返回0;如果在调用中出现错误则返回-1同时errno会被设置成相应的值来提示错误。验证 wait #include stdio.h #include stdlib.h #include unistd.h #include sys/wait.h #include sys/types.hvoid test1() {pid_t id fork();if(id 0){int count 5;while(count){printf(child run - %dchild pid:%d \n,count,getpid());sleep(2);count--;}exit(0);}sleep(20);pid_t waitid wait(NULL);if(waitid 0){int count 5;while(count){printf(child success. parent run-%d\n,count);sleep(1);count--;} }elseprintf(waait error\n); }int main() {test1();return 0; }下面来验证waitpdi 1status相关 只需把最上面的代码稍微修改即可如下图所示 status是输出型参数操作系统会去读取退出码和信号 2options相关 (WNOHANG| WUNTRACED) 这两个参数的作用是非阻塞等待 (做自己的任务并每一段时间检查一次) 参数置0则表示阻塞等待 (只做等待这一件事直到等待结束才去执行自己的 从运行状态(队列)的task_struct放到等待队列中就叫做 挂起等待阻塞从等待队列放到运行队列被CPU调度就叫做唤醒进程 这里解释为什么命令行的指令能看到退出码可以理解为命令行执行的指令说就是一个子进程在bash下的子进程所以每个指令都看作是一个进程都有自己的退出码、终止信号
http://www.eeditor.cn/news/119487/

相关文章:

  • 中学院新校区建设专题网站pinterest的优点
  • 时尚类网站设计公司学生个人网页制作素材
  • 网站的网站地图怎么做郑州建设信息网打不开
  • 四川省建设监理管理协会网站沧州建设网站公司
  • 网站建设方案书设计图在线修图编辑器
  • 网站开发软件科技公司wordpress+短视频主题
  • 万盛网站建设湖北省南漳县城乡建设局网站
  • 湖南铁军工程建设有限公司官方网站北京广告公司名录
  • 北京怎么建立网站商业网站
  • 做网站的方案飞扬世纪网站建设
  • 佛山网站快照优化公司网络管理培训课程
  • 建设银行个人网站打不开简历制作网站免费
  • 网站建设廾金手指专业壹陆魔都网站建设
  • 电子商务网站技术方案一流的句容网站建设
  • 在哪个网站可以免费做广告wordpress的导航菜单
  • 秦皇岛住房建设网站网址创作
  • 网站开发就业前景怎么样湖北强涛建设工程有限公司网站
  • 一般做个网站要多少钱机械加工网登录
  • 中国建设银行十堰分行网站什么网站可以做英语题
  • 做婚纱影楼网站的价格天津工程招标信息网官网
  • 使用编辑字母做免费网站辽宁招标工程信息网
  • 建个站的网站打不开wordpress 微信支付
  • 免费推广网站入口2023燕南京设计网站建设
  • 北京海岸设计公司网站dw做网站视频教程
  • 医疗网站建设讯息佛山网站常见的问题
  • 网站建设logo显示怎么设置网站建设主要做什么
  • 做网站的服务器带宽一般多少广州市设计院官网
  • 网站设计优化vs2017网站开发
  • vs c 网站开发北京网站优化推广效果
  • 网站托管价格网站注册理由