Sintaxe
Alarme int não assinado (não assinado segundos)A função é definida em unistd.h arquivo de cabeçalho.
Argumentos
A função leva um argumento, segundos. Depois segundos segundos se passaram desde que solicitou o alarme() função, o Sigalrm o sinal é gerado. O comportamento padrão no recebimento de Sigalrm é encerrar o processo. Mas, podemos pegar e lidar com o sinal. Veja detalhes de manuseio de sinal.
O alarme() A função retornará um valor não zero, se outro alarme tiver sido definido anteriormente e o valor for o número de segundos restantes para o alarme agendado anterior devido ao entregue. De outra forma alarme() retornará zero.
Exemplo 1.C:
#incluirNa captura de tela da saída de Exemplo 1.c, O programa é executado usando o comando time, para que possamos obter uma visão geral do tempo de execução do programa. Observamos que na função principal chamamos alarme() função, programada para 2 segundos. Portanto, para o loop está executando, após 2 segundos a função SIG_HANDLER é chamada e a execução da função principal é pausada. Após a execução da função SIG_HANDLER, na função principal para execução de loop é retomada. Aqui usamos a função do sono para atrasar para que possamos entender o fluxo da execução. O loop for um loop infinito, quando pressionamos uma tecla de interrupção (Ctrl+C), a execução vai parar.
Gerando Sigalrm usando sinal() A função não pode ser empilhada. Apenas um Sigalrm A geração pode ser agendada. Chamadas sucessivas de sinal() Função Redefina o despertador do processo de chamada.
Exemplo2.C:
#incluirNa captura de tela da saída de Exemplo2.c, Podemos ver que o programa executou mais de 7 segundos, mas o primeiro alarme que foi agendado após 4 segundos não está chamando a função do manipulador. O segundo alarme que foi agendado após 1 segundo é redefinido o alarme.
Se o valor do argumento segundos for zero, qualquer solicitação de alarme feita anteriormente será cancelada.
Exemplo3.C:
#incluirNa captura de tela da saída de Exemplo3.c, Podemos ver que o primeiro alarme que foi agendado após 2 segundos é cancelado devido ao segundo alarme por 0 segundos.
Em Exemplo4.c Veremos como continuamente podemos definir um alarme para cada 2 segundos.
Exemplo4.C:
#incluirNa captura de tela da saída de Exemplo4.c, Podemos ver que o alarme é contínuo a cada 2 segundos. Redefinimos o alarme na função SIG_HANDLER.
Em Exemplo5.c Veremos como podemos atrasar o alarme já agendado. Usaremos o sinal SIGINT para interrupção. Quando o usuário tipo Ctrl+C no teclado, Sigint o sinal gerará.
Exemplo5.C:
#incluirNa captura de tela da saída de Exemplo5.c, Podemos ver que, quando o tipo de usuário Ctrl+C o alarme é redefinido 5 segundos. Neste programa, usamos apenas uma função de manipulador para dois sinais diferentes, mas na função manipuladora foi verificada para o qual o sinal a função do manipulador está sendo chamada.
Conclusão:
Então, vimos que a função de alarme pode ser definida para o sinal de acionamento, como redefinir o alarme, como cancelar o alarme já agendado.