mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
initial import
This commit is contained in:
36
manual/examples/sigh1.c
Normal file
36
manual/examples/sigh1.c
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/* This flag controls termination of the main loop. */
|
||||
volatile sig_atomic_t keep_going = 1;
|
||||
|
||||
/* The signal handler just clears the flag and re-enables itself. */
|
||||
void
|
||||
catch_alarm (int sig)
|
||||
{
|
||||
keep_going = 0;
|
||||
signal (sig, catch_alarm);
|
||||
}
|
||||
|
||||
void
|
||||
do_stuff (void)
|
||||
{
|
||||
puts ("Doing stuff while waiting for alarm....");
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
/* Establish a handler for SIGALRM signals. */
|
||||
signal (SIGALRM, catch_alarm);
|
||||
|
||||
/* Set an alarm to go off in a little while. */
|
||||
alarm (2);
|
||||
|
||||
/* Check the flag once in a while to see when to quit. */
|
||||
while (keep_going)
|
||||
do_stuff ();
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
Reference in New Issue
Block a user