← index
cplusplus11.Examples/UNIX/timer/alarm.cpp
Source: cplusplus11.Examples/UNIX/timer/alarm.cpp
#include<iostream>
#include<signal.h>
#include<unistd.h>
#include<sys/time.h>
#include<ctime>
#include<errno.h>
#include<cstring>

void alarmHandler(int ) {
    std::cout << "Got alarm..\n";
    exit(EXIT_SUCCESS);
}

int main(void) {
    
    struct sigaction sa;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;
    sa.sa_handler = alarmHandler;
    
    if(sigaction(SIGALRM, &sa, NULL) == -1) {
        std::cerr << "Error on signal: " << strerror(errno) << "\n";
        exit(EXIT_FAILURE);
    }
    
    alarm(4);
    
    while(1) {
        std::cout << "waiting...\n";
    }
    
    return 0;
    
}