---
name: "alarm"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["freebsd", "macos"]
url: "https://new.carta.tech/alarm/3"
---

# alarm(3)

set signal timer alarm

## NAME

**alarm** – set signal timer alarm

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<unistd.h\>**

*unsigned*\

**alarm**(*unsigned seconds*);

## DESCRIPTION

This interface is made obsolete by [setitimer(2)](/setitimer/2.md).

The **alarm**() function sets a timer to deliver the signal SIGALRM to the calling process after the specified number of *seconds*. If an alarm has already been set with **alarm**() but has not been delivered, another call to **alarm**() will supersede the prior call. The request **alarm**(*0*) voids the current alarm and the signal SIGALRM will not be delivered.

Due to [setitimer(2)](/setitimer/2.md) restriction the maximum number of *seconds* allowed is 100,000,000.

## RETURN VALUES

The return value of **alarm**() is the amount of time left on the timer from a previous call to **alarm**(). If no alarm is currently set, the return value is 0.

## SEE ALSO

[setitimer(2)](/setitimer/2.md), [sigaction(2)](/sigaction/2.md), [sigsuspend(2)](/sigsuspend/2.md), [signal(3)](/signal/3.md), [sleep(3)](/sleep/3.md), [ualarm(3)](/ualarm/3.md), [usleep(3)](/usleep/3.md)

## HISTORY

An **alarm**() system call appeared in the Programmer's Workbench (PWB/UNIX) and was ported to Version 7 AT&T UNIX. For 4.1cBSD, it was reimplemented as a wrapper around the [setitimer(2)](/setitimer/2.md) system call.
