• 进程控制之waitid函数


    Single UNIX Specification的XSI扩展包括了另一个取进程终止状态的函数——waitid,此函数类似于waitpid,但提供了更多的灵活性。

    #include <sys/wait.h>
    
    int waitid( idtype_t idtype, id_t id, siginfo_t *infop, int options );
    返回值:若成功则返回0,若出错则返回-1

    与waitpid相似,waitid允许一个进程指定要等待的子进程。但它使用单独的参数表示要等待的子进程的类型,而不是将此与进程ID或进程组ID组合成一个参数。id参数的作用与idtype的值相关。该函数支持的idtype类型列出在表8-3中。

    表8-3 waitid的idtype常量

     常量 说明
    P_PID 等待一个特定的进程:id包含要等待子进程的进程ID
    P_PGID 等待一个特定进程组中的任一子进程:id包含要等待子进程的进程组ID
    P_ALL 等待任一子进程:忽略id

     

    options参数是表8-4中各标志的按位“或”。这写标志指示调用者关注哪些状态变化。

    表8-4 waitid的options常量

     常量 说明
    WCONTINUED 等待一个进程,它以前曾被暂停,此后又已继续,但其状态尚未报告
    WEXITED 等待已退出的进程
    WNOHANG 如无可用的子进程退出状态,立即返回而非阻塞
    WNOWAIT 不破坏子进程退出状态。该子进程退出状态可由后续的wait、waitid或waitpid调用取得
    WSTOPPED 等待一个进程,它已经暂停,但其状态尚未报告

     

    infop参数是指向siginfo结构的指针。该结构包含了有关引起子进程状态改变的生成信号的详细信息。

     

    本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/

  • 相关阅读:
    centos7修改服务端口(ssh为例)
    VLAN基础知识
    三层交换机与路由器区别
    冲突域和广播域的区分
    LAN口和WAN口的区别是什么?
    内网穿透frp
    linux bash中too many arguments问题的解决方法
    linux日志
    linux服务管理
    OSPF 多区域配置实验
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3510127.html
Copyright © 2020-2023  润新知