Syntaks
usignert INT -alarm (usignerte INT -sekunder)Funksjonen er definert i Unistd.h headerfil.
Argumenter
Funksjonen tar ett argument, sekunder. Etter sekunder sekunder har gått siden alarm() funksjon, Sigalrm signalet genereres. Standard oppførsel ved mottak av Sigalrm er å avslutte prosessen. Men vi kan fange og håndtere signalet. Se signalbehandlingsdetaljer.
De alarm() Funksjonen vil returnere en ikke -null verdi, hvis en annen alarm tidligere har blitt satt og verdien er antall sekunder som er igjen for den forrige planlagte alarmen på grunn av levert. Ellers alarm() vil returnere null.
Eksempel1.c:
#inkludereI skjermbildet av utgangen fra Eksempel1.c, Programmet kjøres ved hjelp av Time Command, slik at vi kan få en oversikt over utførelsestiden for programmet. Vi observerte at vi i hovedfunksjonen kaller alarm() funksjon, planlagt i 2 sekunder. Så for Loop utføres, kalles Sig_handler -funksjonen etter 2 sekunder og utførelsen av hovedfunksjonen blir satt på pause. Etter utførelse av SIG_Handler -funksjonen blir i hovedfunksjon for utførelse av sløyfe gjenopptatt. Her bruker vi søvnfunksjon for forsinkelse slik at vi kan forstå strømmen av utførelsen. For -loopen er en uendelig sløyfe, når vi trykker på en avbruddsnøkkel (CTRL+C), vil utførelsen stoppe.
Generere Sigalrm ved hjelp av signal() Funksjon kan ikke stables. Bare en Sigalrm Generasjon kan planlegges. Påfølgende samtaler om signal() Funksjon Tilbakestill vekkerklokken til anropsprosessen.
Eksempel2.c:
#inkludereI skjermbildet av utgangen fra Eksempel2.c, Vi kan se at programmet utførte mer enn 7 sekunder, men den første alarmen som var planlagt etter 4 sekunder, ringer ikke behandlerfunksjonen. Den andre alarmen som var planlagt etter 1 sekund er tilbakestilt alarmen.
Hvis verdien av argumentet er null, blir enhver tidligere anmodning om alarmbestillelse kansellert.
Eksempel3.c:
#inkludereI skjermbildet av utgangen fra Eksempel3.c, Vi kan se at den første alarmen som var planlagt etter at 2 sekunder er kansellert på grunn av den andre alarmen i 0 sekund.
I Eksempel4.c Vi får se hvor kontinuerlig vi kan sette en alarm for hvert 2. sekund.
Eksempel4.c:
#inkludereI skjermbildet av utgangen fra Eksempel4.c, Vi kan se at alarmen er kontinuerlig i hvert 2. sekund. Vi tilbakestiller alarmen i Sig_Handler -funksjonen.
I Eksempel5.c Vi får se hvordan vi kan utsette alarmen som allerede er planlagt. Vi vil bruke Sigint -signal for avbrytelse. Når brukertype Ctrl+C i tastaturet, Sigint signalet vil generere.
Eksempel5.c:
#inkludereI skjermbildet av utgangen fra Eksempel5.c, Vi kan se at når brukertype Ctrl+C, tilbakestilles alarmen 5 sekunder. I dette programmet har vi bare brukt en behandlerfunksjon for to forskjellige signaler, men i behandlerfunksjonen har det blitt sjekket at for hvilket signal førerfunksjonen blir kalt.
Konklusjon:
Så vi har sett at hvordan alarmfunksjonen kan settes for utløsende signal, hvordan du tilbakestiller alarm, hvordan du kansellerer allerede planlagt alarm.