美文网首页
系统编程--进程函数

系统编程--进程函数

作者: 魔芋辣椒 | 来源:发表于2020-08-10 16:26 被阅读0次

    一、fork()

    #unistd.h
    pid_t fork();
    

    拷贝父进程,子进程的fork不执行,返回0,执行fork之后的所有代码
    父进程的fork返回子进程pid

    二、getpid()

    getpid()
    #获得当前进程的pid
    getppid();
    #获得当前进程的父进程的pid
    

    父子进程无论谁,对源代码都是读时共享,写时复制

    三、wait()

    #include<sys/wait.h>
    
    int status;
    pid_t wpid=wait(&status);//回收子进程,并获取回收状态于status
    

    查看status
    WIFEXITED 查看子进程是否正常退出,如果为真,调用
    WEXITSTATUS //查看子进程正常推出的返回值

    WIFSIGNALED 查看子进程是否异常退出,如果为真,调用
    WTERMSIG //查看杀死子进程的编号

    四、waitpid()

    pid_t waitpid(pid_t pid,int *status,int option);
    //pid=-1,回收任意子进程,相当于wait
    //pid=0,回收所有子进程
    //加强版wait,可以选择干掉特定的子进程,option用来指定非阻塞WNOHANG
    

    五、守护进程

    不受用户终端控制,循环做某件事的进程,创建时不能由组长创建
    创建步骤:

    1. fork子进程,关闭父进程
    2. 子进程调用setsid() 创建会话 (脱离终端)
    3. chdir(),改变目录,防止被卸载
    4. 设置umask,022--755
    5. 关闭/重定向(dup2)文件描述符到dev/null
    6. 编写业务逻辑

    相关文章

      网友评论

          本文标题:系统编程--进程函数

          本文链接:https://www.haomeiwen.com/subject/frwddktx.html