现在位置: 首页 > C 教程 > 正文

C 库函数 - kill()

C 标准库 - <signal.h> C 标准库 - <signal.h>

描述

kill 函数是 C 标准库中的一个函数,用于向指定进程或进程组发送信号。它定义在 <signal.h> 头文件中,并允许程序向其他进程发送信号以影响其行为。

声明

下面是 kill() 函数的声明。

int kill(pid_t pid, int sig);

参数

  • pid_t pid:要发送信号的目标进程的进程 ID(PID)。
    • 如果 pid > 0,则信号 sig 将发送给进程 ID 等于 pid 的进程。
    • 如果 pid == 0,则信号 sig 将发送给与调用进程属于同一进程组的所有进程。
    • 如果 pid < -1,则信号 sig 将发送给进程组 ID 等于 pid 的所有进程。
    • 如果 pid == -1,则信号 sig 将发送给所有有权限发送信号的进程(除了进程 ID 为 1 的进程)。
  • int sig:要发送的信号编号。常见的信号包括 SIGINTSIGTERMSIGKILL 等。

返回值

  • 成功时返回 0。
  • 失败时返回 -1,并设置 errno 以指示错误类型。

实例

以下是一个简单的示例程序,演示如何使用 kill 函数向另一个进程发送 SIGUSR1 信号:

实例

#include <stdio.h>
#include <signal.h>
#include <unistd.h>

int main() {
    pid_t pid = getpid(); // 获取当前进程的进程 ID

    // 向当前进程发送 SIGUSR1 信号
    if (kill(pid, SIGUSR1) == -1) {
        perror("kill");
        return 1;
    }

    printf("SIGUSR1 signal sent to process %d.\n", (int)pid);

    return 0;
}

编译并运行程序后,输出将是:

SIGUSR1 signal sent to process [进程ID].

C 标准库 - <signal.h> C 标准库 - <signal.h>