---
name: "ppsratecheck"
section: "9freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ppsratecheck/9freebsd"
---

# ppsratecheck(9freebsd)

event rate limiting

## NAME

**ratecheck**, **ppsratecheck** – event rate limiting

## SYNOPSIS

**#include \<sys/time.h\>**

*int*\

**ratecheck**(*struct timeval \*lasttime*, *struct timeval \*mininterval*);

*int*\

**ppsratecheck**(*struct timeval \*lasttime*, *int \*curpps*, *int maxpps*);

## DESCRIPTION

The **ratecheck** and **ppsratecheck** functions facilitate rate-limiting of arbitrary events. The former enforces a minimum interval between events while the latter enforces a maximum number of events per second.

The **ratecheck** function compares the current time to the value pointed to by *lasttime*. If the difference is equal to or greater than *mininterval*, it returns a non-zero value and updates *lasttime* to the current time. Otherwise, it returns zero.

The **ppsratecheck** function first compares the current time to *lasttime*. If at least a full second has passed, the value pointed to by the *curpps* argument is reset to 1 and *lasttime* is updated to the current time. Otherwise, *curpps* is incremented and *lasttime* is left untouched. In either case, **ppsratecheck** returns a non-zero value if and only if the updated *curpps* is less than or equal to *maxpps* or *maxpps* is negative.

## SEE ALSO

[counter(9)](/counter/9.md)

## HISTORY

The **ratecheck** and **ppsratecheck** functions first appeared in FreeBSD 5.1.
