• 5-3 kill()、raise()、alarm()、pause()


    kill:

    /********************
     *功能:给进程发送一个信号
     *参数:pid > 0 :将signal发送给进程号为PID的进程
     *      pid = 0 :将signal发送给同进程组的进程
     *      pid =-1 :将signal发送给他有权限发送的每个进程(除了init进程)
     *      pid < -1 : 将signal发送给|pid|的进程组的进程
     *      signal:0:不会发送信号,用于检测进程或者进程组是否存在
     *返回值:成功返回0,失败返回-1并设置ERRNO
     * ****************/
    #include <sys/types.h>
    #include <signal.h>
    int kill(pid_t pid, int sig);

    raise:

    /*********************
     *功能:给当前进程或者线程发送一个信号
     *参数:signal:信号
     *返回值:成功返回0,失败返回-1并设置errno
     * ******************/
    #include <signal.h>
    int raise(int sig);

    alarm:没办法实现多任务的计时器

    /*********************
     *功能:倒计时会给当前进程发送一个SIGALRM
     *参数:seconds:计时:0:不会产生signal
     *返回值:倒计时时间
     * ******************/
    #include <unistd.h>
    unsigned int alarm(unsigned int seconds);

    pause:

    /*********************
     *功能:等待一个信号到来,解决信号忙等
     *返回值:当有信号捕捉到的条件下并且信号函数执行,返回EINTR
     * ******************/
    #include <unistd.h>
    int pause(void);

    sleep:有的系统使用alarm+pause封装形成的,程序中如果也用到alarm函数就会冲突

               有的系统用的是nanosleep实现的 

  • 相关阅读:
    批量重命名文件
    文件上传漏洞靶场-upload-labs学习
    CVE-2018-12613(phpMyAdmin远程文件包含)-HCTF-2018-WarmUp
    YzmCms_SSRF漏洞
    phpokCms从CSRF到getShell
    XYHCms代码执行
    Weblogic 反序列化命令执行漏洞(CVE-2018-2628)
    Weblogic XMLDecoder反序列化漏洞(CVE-2017-10271)
    SSRF漏洞与CVE-2014-4210实例
    缓冲区溢出漏洞实例(打开记事本)
  • 原文地址:https://www.cnblogs.com/muzihuan/p/5302391.html
Copyright © 2020-2023  润新知