使用默认操作提升 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