zoukankan      html  css  js  c++  java
  • Linux 信号(一)—— kill 函数

    世事并无好坏之分,全看我们怎么去想。—— 哈姆雷特·第二幕第二景

    ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287

    1 #include <signal.h>
    2 int kill(pid_t pid, int signo);

    用于给指定的进程或进程组发送信号。成功返回 0,出错返回 -1。

    • pid > 0:将信号发送给进程 ID 为 pid 的进程。
    • pid == 0:将信号发送给与发送进程属于同一进程组的所有进程。
    • pid < 0:将信号发送给进程组 ID 等于 pid 的绝对值的所有进程。
    • pid == -1:将信号发送给系统中所有进程。

    上述中的“所有进程”不包括系统进程。

    另外,调用 kill 函数的进程要有向目标进程发送信号的权限。非 root 用户通常只能向与调用 kill 函数进程具有相同用户 ID 的进程发送信号。

    如果 signo 为 0,则代表空信号,kill 不发送实际信号,但可以用来确定指定进程是否仍存在。如果向一个不存在的进程发送空信号,kill 返回 -1,errno 被设置为 ESRCH (表示 pid 指定的进程或进程组不存在)。

    其他 errno:“EINVAL:指定的 singo 无效;EPERM:权限不够”。

    对于进程是否存在这种测试不是原子操作,当 kill 返回时,也可能原来存在的进程此时已终止。另外,系统会复用 pid,所以我们指定 pid 的进程并不一定就是想要测试的那个进程。所以这种测试并不可靠。

    学习资料: 《unix 环境高级编程》

  • 相关阅读:
    oracle日志总结
    UIScrollView,contentOffset,contentInsert的各自特点和区别?
    js动态增加表格
    判断某个对象是不是DOM对象
    IOS 中frame与bounds的区别
    删除重复项,只取其中一条数据
    NSBundle
    React
    HTML5 postMessage 和 onmessage API 详解
    SonarQube
  • 原文地址:https://www.cnblogs.com/ilocker/p/4647555.html
Copyright © 2011-2022 走看看