C:通过alarm发送信号

可以通过alarm定时发送SIGALRM信号:

#include <unistd.h>

unsigned int alarm(unsigned int seconds);

alarm()函数用来在seconds秒之后安排发送一个SIGALRM信号,如果seconds为0,将取消所有已设置的闹钟请求。alarm()函数的返回值是以前设置的闹钟时间的余留秒数,如果返回失败返回-1。

cpp 复制代码
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>

#include <time.h>
 
time_t timeStamp()
{
    time_t time_now = time(NULL); 
    return time_now;
}

static int alarm_done = 0;
 
void handle_alarm(int sig)
{
    printf("handle alarm ts:%ld\n", timeStamp());
    alarm_done = 1;
}
 
int main()
{
    signal(SIGALRM, handle_alarm);
    printf("set alarm ts:%ld\n", timeStamp());
    fflush(stdout);
    alarm(3);
     
    pause();
     
    if(alarm_done == 1)
    {
        printf("recv a alarm ts:%ld\n", timeStamp());
    }
 
    return 0;
}

运行程序输出:

set alarm ts:1691316070

handle alarm ts:1691316073

recv a alarm ts:1691316073

相关推荐
情缘晓梦.5 小时前
C语言分支与循环
c语言·开发语言
AAA.建材批发刘哥6 小时前
03--C++ 类和对象中篇
linux·c语言·开发语言·c++·经验分享
AlexMercer10127 小时前
【操作系统】操作系统期末考试 简答题 焚决
c语言·经验分享·笔记·操作系统
学嵌入式的六子7 小时前
如何使用VScode开发STM32【喂饭级教程】-全过程讲解
c语言·ide·vscode·stm32·单片机·嵌入式硬件
墨辰JC7 小时前
C语言可变参数讲解:stdarg.h应用
c语言·开发语言·蓝桥杯·内存·蓝桥杯嵌入式
C语言小火车7 小时前
C++右值引用与转移语义详解
c语言·开发语言
程芯带你刷C语言简单算法题8 小时前
Day43~实现一个算法求一个数字的树根
c语言·开发语言·算法·c
buyicn8 小时前
C语言中各种变量的内存分布
c语言
leo__52010 小时前
基于C语言的FOC算法核心模块实现
c语言·算法·机器学习
培林将军11 小时前
C语言指针
c语言·开发语言·算法