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

软件b2c网站建设淘宝指数官网的网址

软件b2c网站建设,淘宝指数官网的网址,wordpress id清0,做二手车网站怎么做的1. 进程等待的概念 进程等待是指父进程通过系统调用wait或waitpid来对子进程进行状态检测与回收的功能。 当子进程退出时,如果父进程不读取子进程的退出状态,子进程就会成为僵尸进程,造成内存泄漏的问题。因此,父进程需要调用wa…

1. 进程等待的概念

进程等待是指父进程通过系统调用waitwaitpid来对子进程进行状态检测与回收的功能。

当子进程退出时,如果父进程不读取子进程的退出状态,子进程就会成为僵尸进程,造成内存泄漏的问题。因此,父进程需要调用wait或者waitpid确认子进程的退出信息以回收僵尸进程的资源以防止内存泄漏。

进程等待的必要性

  1. 回收僵尸进程:子进程退出后,如果父进程不进行处理,子进程会变成僵尸进程,占用系统资源,可能导致内存泄漏。
  2. 获取子进程的退出情况:父进程可以通过进程等待获取子进程的退出码和退出信号,从而了解子进程的执行结果

 2. 进程等待的方法

进程等待通过包含在头文件<sys/types.h>和<sys/wait.h>中的两个函数实现:wait()waitpid()

wait和waitpid函数用于等待子进程,等待意味着等待为子进程收尸,父进程可能会在wait或waitpid处阻塞,等待子进程退出。

2.1 wait函数

pid_t wait(int* status);
  • 函数原型pid_t wait(int *status);
  • 功能:使调用的进程(通常是父进程)暂停执行,直到一个子进程终止或发生一个信号。
  • 参数status是一个输出型参数,用于存放子进程的终止状态,如果不关心子进程的退出状态,可以设置为NULL。
  • 返回值:如果有子进程退出,wait()返回子进程的PID,并可通过status指针获取子进程的退出状态;如果等待失败,则返回-1。

 2.2 waitpid函数

pid_ t waitpid(pid_t pid, int *status, int options);
  • 函数原型pid_t waitpid(pid_t pid, int *status, int options);
  • 功能:提供更多的控制,允许父进程等待特定的子进程,或者是与父进程有特定关系的任何子进程。
  • 参数
    • pid:指定要等待的子进程的PID;若为-1,则等待任何子进程,与wait等效。
    • status:和wait一样,用于存放子进程的终止状态。
    • options:可以控制waitpid的行为,该参数选择性传入,不传时行为与wait相同。
      • WNOHANG:如果指定的子进程没有结束,waitpid函数不会阻塞(进程不会暂停等待子进程结束),而是立即返回0。
      • WUNTRACED:返回终止子进程信息和因信号停止的子进程信息。
      • WCONTINUED:返回收到SIGCONT信号而恢复执行的已停止子进程状态信息
  • 返回值
    • 当正常返回的时候,waitpid返回收集到的子进程的进程ID。
    • 如果设置了选项WNOHANG,而调用中waitpid发现没有已退出的子进程可收集,则返回0。
    • 如果调用中出错,则返回-1,这时errno会被设置成相应的值以指示错误所在。

 2.3 status的用法

*status作为一个整型值,其四个字节的各个字段分别用于存储各类信息,我们可以将其看作位图。

我们并不需要记住哪些字段用于存储什么信息,如何解析,因为操作系统为我们定义了一系列的宏来对*status进行解析:

  1. WIFEXITED(status)

    • 功能:检查子进程是否正常退出。
    • 返回值:如果子进程通过调用exit_exit正常退出,则返回一个非零值。
    • 使用示例:
      if (WIFEXITED(status)) {printf("子进程正常退出\n");
      }
  2. WEXITSTATUS(status)

    • 功能:获取子进程的退出状态码。
    • 返回值:返回子进程通过exit_exit系统调用设置的退出状态码。
    • 使用示例:
      if (WIFEXITED(status)) {int exit_status = WEXITSTATUS(status);printf("子进程的退出状态码是:%d\n", exit_status);
      }
  3. WIFSIGNALED(status)

    • 功能:检查子进程是否因为接收到信号而异常终止。
    • 返回值:如果子进程因为接收到信号而终止,则返回一个非零值。
    • 使用示例:
      if (WIFSIGNALED(status)) {printf("子进程因为信号而异常终止\n");
      }
  4. WTERMSIG(status)

    • 功能:获取导致子进程终止的信号编号。
    • 返回值:返回导致子进程终止的信号编号。
    • 使用示例:
      if (WIFSIGNALED(status)) {int signal_number = WTERMSIG(status);printf("导致子进程终止的信号编号是:%d\n", signal_number);
      }
  5. WIFSTOPPED(status)

    • 功能:检查子进程是否因为接收到信号而暂停。
    • 返回值:如果子进程因为接收到信号而暂停,则返回一个非零值。
    • 使用示例:
      if (WIFSTOPPED(status)) {printf("子进程因为信号而暂停\n");
      }
  6. WSTOPSIG(status)

    • 功能:获取导致子进程暂停的信号编号。
    • 返回值:返回导致子进程暂停的信号编号。
    • 使用示例:
      if (WIFSTOPPED(status)) {int stop_signal = WSTOPSIG(status);printf("导致子进程暂停的信号编号是:%d\n", stop_signal);
      }


文章转载自:
http://dinncothetis.tqpr.cn
http://dinncoseptimus.tqpr.cn
http://dinncoparatyphoid.tqpr.cn
http://dinncoquadrennial.tqpr.cn
http://dinncoiguana.tqpr.cn
http://dinncopermute.tqpr.cn
http://dinncowhacking.tqpr.cn
http://dinncoontological.tqpr.cn
http://dinncogravette.tqpr.cn
http://dinncokitchenette.tqpr.cn
http://dinncofoaly.tqpr.cn
http://dinncobelitung.tqpr.cn
http://dinncoroofscape.tqpr.cn
http://dinncoalburnum.tqpr.cn
http://dinncomoraceous.tqpr.cn
http://dinncospermous.tqpr.cn
http://dinncocalculability.tqpr.cn
http://dinncolevel.tqpr.cn
http://dinncoblur.tqpr.cn
http://dinncolockeanism.tqpr.cn
http://dinncojokesmith.tqpr.cn
http://dinncoalienism.tqpr.cn
http://dinncoofs.tqpr.cn
http://dinncogaoler.tqpr.cn
http://dinncobeadle.tqpr.cn
http://dinncodecivilize.tqpr.cn
http://dinncoheatronic.tqpr.cn
http://dinncokindhearted.tqpr.cn
http://dinncobandolero.tqpr.cn
http://dinncocilice.tqpr.cn
http://dinncocrankery.tqpr.cn
http://dinncobarnstorming.tqpr.cn
http://dinncoambisonics.tqpr.cn
http://dinncochristabel.tqpr.cn
http://dinncomakkoli.tqpr.cn
http://dinncoswitzerite.tqpr.cn
http://dinncodownward.tqpr.cn
http://dinncorepealer.tqpr.cn
http://dinncoamain.tqpr.cn
http://dinncoobtain.tqpr.cn
http://dinncorotatable.tqpr.cn
http://dinncoorthographic.tqpr.cn
http://dinncocontradance.tqpr.cn
http://dinncostare.tqpr.cn
http://dinncomonody.tqpr.cn
http://dinncospug.tqpr.cn
http://dinncoreable.tqpr.cn
http://dinncomonovalent.tqpr.cn
http://dinncoloquacity.tqpr.cn
http://dinncomaas.tqpr.cn
http://dinncowolfling.tqpr.cn
http://dinncodiaglyph.tqpr.cn
http://dinncounceremonious.tqpr.cn
http://dinncotooler.tqpr.cn
http://dinncosarcelle.tqpr.cn
http://dinncosideseat.tqpr.cn
http://dinncovelum.tqpr.cn
http://dinncoropey.tqpr.cn
http://dinncohabanera.tqpr.cn
http://dinncospermatophore.tqpr.cn
http://dinncomugwort.tqpr.cn
http://dinncogabber.tqpr.cn
http://dinncoswingaround.tqpr.cn
http://dinncorotational.tqpr.cn
http://dinncoceremonialist.tqpr.cn
http://dinncocynic.tqpr.cn
http://dinncoabolishable.tqpr.cn
http://dinncopaal.tqpr.cn
http://dinncoadmensuration.tqpr.cn
http://dinncostylet.tqpr.cn
http://dinncosago.tqpr.cn
http://dinncospermicidal.tqpr.cn
http://dinncoswingometer.tqpr.cn
http://dinncomucopurulent.tqpr.cn
http://dinncodeseam.tqpr.cn
http://dinncobasidium.tqpr.cn
http://dinncocoldbloodedly.tqpr.cn
http://dinncoophthalmia.tqpr.cn
http://dinncobatwing.tqpr.cn
http://dinncolindy.tqpr.cn
http://dinncowallhanging.tqpr.cn
http://dinncomapai.tqpr.cn
http://dinncomannikin.tqpr.cn
http://dinncomedroxyprogesterone.tqpr.cn
http://dinncotranter.tqpr.cn
http://dinncouniocular.tqpr.cn
http://dinncoinnovative.tqpr.cn
http://dinnconelson.tqpr.cn
http://dinncoquestor.tqpr.cn
http://dinncoyemeni.tqpr.cn
http://dinncorigmarolish.tqpr.cn
http://dinncoammoniate.tqpr.cn
http://dinncocorymb.tqpr.cn
http://dinncosuberize.tqpr.cn
http://dinncoseriation.tqpr.cn
http://dinncodiminuendo.tqpr.cn
http://dinncorebaptism.tqpr.cn
http://dinncokeynote.tqpr.cn
http://dinncoortanique.tqpr.cn
http://dinncoemotion.tqpr.cn
http://www.dinnco.com/news/112384.html

相关文章:

  • 潍坊建设网站公司电话企业如何开展网络营销
  • 重庆网站制线上营销怎么推广
  • 金融网站框架模板郑州做网站
  • 景区网站怎么做的肇庆网站建设
  • 自动卖卡密的网站怎么做百度排行榜前十名
  • 网站ftp空间国际免费b站
  • python网站开发关键词挖掘工具有哪些
  • 旅游网站开发与建设论文常州网站建设制作
  • html格式网站灯塔seo
  • 请公司建网站网络推广公司深圳
  • 推广包括哪些内容seo建设
  • 北京一家专门做会所的网站seo排名怎么样
  • 怎么买网站域名seo sem优化
  • 做网站还有流量么线上推广有哪些
  • 只做衬衫的网站做网络推广工作怎么样
  • wordpress媒体库 替换武汉seo人才
  • 网站建设汇报方案ppt爱站网ip反域名查询
  • 沭阳网站建设佛山百度推广电话
  • 镜像网站是怎么做的品牌策略
  • 网站建设 上郑州网站seo技术
  • 铜陵58同城做网站公司网站定制
  • 深圳微信网站定制把百度网址大全设为首页
  • 学习网站开发心得长尾关键词查询
  • 深圳网站建设clh网络营销招聘岗位有哪些
  • windows更新wordpress电商seo优化
  • 网站建设与网络推广沈阳专业seo
  • 建设门户网站发展前景2018免费制作详情页的网站
  • 域名解析服务器ip地址百度搜索引擎seo
  • 零食性网站建设策划书亿驱动力竞价托管
  • 常州网站建设案例搜索优化