我钉钉下载了怎么不显示的钉为什么有网、显示我未连接呢

    wait()函数用于使父进程(也就是调用wait()嘚进程)阻塞直到一个子进程结束或者该进程接收到了一个指定的信号为止。如果该父进程没有子进程或者它的子进程已经结束则wait()就會立即返回。

    waitpid()的作用和wait()一样但它并不一定要等待第一个终止的子进程,它还有若干选项如可提供一个非阻塞版本的wait()功能,也能支持作業控制实际上,wait()函数只是waitpid()函数的一个特例在Linux内部实现wait()函数时直接调用的就是waitpid()函数。

这里的status是一个整型指针是该子进程退出时的状态。若status不为空则通过它可以获得子进程的结束状态。另外子进程的结束状态可由Linux中一些特定的宏来测定
成功:已结束运行的子进程的进程号
pid > 0:只等待进程ID等于pid的子进程,不管是否已经有其他子进程运行结束退出只要指定的子进程还没有结束,waitpid()就会一直等下去
pid = -1:等待任何┅个子进程退出此时和wait()作用一样
pid = 0:等待其组ID等于调用进程的组ID的任一子进程
WNOHANG:若由pid指定的子进程没有结束,则waitpid()不阻塞而立即返回此时返回值为0
WUNTRACED:为了实现某种操作,由pid指定的任一子进程已被暂停且其状态自暂停以来还未报告过,则返回其状态
0:同wait()阻塞父进程,等待孓进程退出
正常:已经结束运行的子进程的进程号
使用选项WNOHANG且没有子进程退出:0

    由于wait()函数的使用较为简单在此仅以waitpid()为例进行讲解。本例Φ首先使用fork()创建一个子进程然后让其子进程暂停5s(使用了sleep()函数)。接下来对原有的父进程使用waitpid()函数并使用参数WNOHANG使该父进程不会阻塞。若有子进程退出则waitpid()返回子进程号;若没有子进程退出,则waitpid()返回0并且父进程每隔1s循环判断一次。该程序的流程图如图1所示

    可见,该程序在经过5次循环后捕获到了子进程的退出信号,具体的子进程号在不同的系统上会有所区别

我要回帖

更多关于 钉钉下载了怎么不显示 的文章

 

随机推荐