使用預設操作提升 SIGALARM

使用 alarm,使用者可以在指定的間隔後排程 SIGALARM 訊號。如果使用者沒有阻止,忽略或指定此訊號的顯式訊號處理程式,則此訊號的預設操作將在到達時執行。SIGALARM 的每個規範預設操作是終止程序:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char** argv)
{
    printf("Hello!\n");

    // Set the alarm for five second
    alarm(5); // Per POSIX, this cannot fail

    // Now sleep for 15 seconds
    for (int i = 1; i <= 15; i++)
    {
        printf("%d\n", i);
        sleep(1);
    }

    // And print the message before successful exit
    printf("Goodbye!\n");

    return EXIT_SUCCESS;
}

這輸出:

Hello!
1
2
3
4
5
[2]    35086 alarm      ./a.out