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

相关推荐
Navigator_Z1 小时前
LeetCode //C - 1089. Duplicate Zeros
c语言·算法·leetcode
笨笨没好名字4 小时前
怎么看懂51单片机电路图与功能实现的C语言编写(2-7入门篇)
c语言·嵌入式硬件·51单片机
QiLinkOS7 小时前
《打破“用爱发电”:一种基于 Gitee 与时间戳的开源权益分配机制探索》
c语言·数据结构·c++·科技·算法·gitee·开源
社交怪人8 小时前
【范围判断】信息学奥赛一本通C语言解法(题号2052)
c语言
LONGZETECH10 小时前
软硬协同+故障注入:无人机仿真维修与操控仿真底层算法逻辑拆解
大数据·c语言·算法·3d·unity·无人机
zlinear数据采集卡10 小时前
SPI Flash存储电路深度解析:从芯片选型到ZLinear采集卡的实战设计
c语言·嵌入式硬件·自动化·硬件架构
羊羊一洋13 小时前
GCC __attribute__ 完全指南:从入门到实战
c语言·stm32
zz345729811314 小时前
C语言中字符串常量存储位置
c语言·开发语言·算法·青少年编程
noipp14 小时前
推荐题目:洛谷 P16510 [GKS 2015 #C] gRanks
java·c语言·开发语言·c++·python·算法
程序喵大人14 小时前
从内存/汇编角度看C与C++:指针、引用、对象的底层差异
c语言·汇编·c++·指针·引用·对象