Linux / C Handling SIGALRM PLEASE LOOK AT MY CODE AT THE BOTTOM, USE THAT TEMPLA
ID: 3850433 • Letter: L
Question
Linux / C Handling SIGALRM
PLEASE LOOK AT MY CODE AT THE BOTTOM, USE THAT TEMPLATE. I NEED HELP FINISHING IT
#include <signal.h>
volatile sig_atomic_t print_flag = false;
void handler_alarm(int sig) {
print_flag = true;
}
int main() {
signal(SIGALARM,handler);
alarm(1);
// infinite for loop:
// if statement to check print flag
// print
// change print flag to false
// call alarm function
exit(EXIT_SUCCESS)
}
Explanation / Answer
#include <signal.h>
#include <stdio.h>
#include <stdbool.h>
#include <unistd.h>
volatile sig_atomic_t print_flag = false;
void handle_alarm( int sig ) {
print_flag = true;
if(print_flag)
printf("In signal handler: print flag is true ");
}
int main() {
signal( SIGALRM, handle_alarm ); // Install handler first,
alarm( 1 ); // call alarm before infinite loop
for (;;) {
if ( print_flag ) {
printf( "print_flag is true " );
print_flag = false;
//again call alarm in loop
alarm( 1 );
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.