Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

linux signal

作者:我视你如狗ㄟ   发布日期:2026-02-04   浏览:22

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

// 定义一个信号处理函数
void handle_signal(int signum) {
    printf("Received signal: %d\n", signum);
}

int main() {
    // 注册信号处理函数,当收到SIGINT时调用handle_signal
    struct sigaction sa;
    sa.sa_handler = handle_signal;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;

    if (sigaction(SIGINT, &sa, NULL) == -1) {
        perror("sigaction");
        exit(1);
    }

    printf("Waiting for SIGINT (Ctrl+C)...\n");

    // 程序在此处等待信号
    while (1) {
        pause();
    }

    return 0;
}

解释说明:

  1. 包含头文件#include <signal.h>#include <unistd.h> 是为了使用信号处理函数和系统调用。
  2. 定义信号处理函数handle_signal 函数会在接收到指定信号(如SIGINT)时被调用,并打印出接收到的信号编号。
  3. 注册信号处理函数:使用 sigaction 函数将 handle_signal 注册为 SIGINT 信号的处理函数。sigaction 提供了更灵活的信号处理机制。
  4. 等待信号:程序进入一个无限循环,调用 pause() 使进程暂停并等待信号的到来。
  5. 运行程序:编译并运行该程序后,按下 Ctrl+C 会触发 SIGINT 信号,从而调用 handle_signal 函数并打印相关信息。

这个示例展示了如何在 Linux 中捕获和处理信号。

上一篇:linux复制文件夹并且重命名

下一篇:linux 查看当前用户

大家都在看

linux常用命令查询端口是否正常

linux 发送邮件

linux长ping命令

linux groupadd

linux关机命令行

linux 安装 gcc

linux重启oracle命令

linux把一个文件夹移动到另一个文件夹里

linux查看系统运行时间

linux搭建sftp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站