---
name: "ares_timeout"
section: "3"
platform: "linux"
package: "c-ares"
version: "1.34.9-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ares_timeout"
---

# ares\_timeout(3)

return maximum time to wait

## NAME

ares\_timeout - return maximum time to wait

## SYNOPSIS

```
#include <ares.h>
struct timeval *ares_timeout(const ares_channel_t *channel,
                             struct timeval *maxtv,
                             struct timeval *tv)
```

## DESCRIPTION

The **[ares\_timeout(3)](/ares_timeout/3.md)** function determines the maximum time for which the caller should wait before invoking *[ares\_process(3)](/ares_process/3.md)* to process timeouts. The parameter *maxtv* specifies a existing maximum timeout, or **NULL** if the caller does not wish to apply a maximum timeout.  The parameter *tv* must point to a writable buffer of type **struct timeval** It is valid for *maxtv* and *tv* to have the same value.

If no queries have timeouts pending sooner than the given maximum timeout, **[ares\_timeout(3)](/ares_timeout/3.md)** returns the value of *maxtv*; otherwise **[ares\_timeout(3)](/ares_timeout/3.md)** stores the appropriate timeout value into the buffer pointed to by *tv* and returns the value of *tv*.

## SEE ALSO

[**ares\_fds**(3)](/ares_fds/3.md), [**ares\_process**(3)](/ares_process/3.md), [**ares\_process\_fd**(3)](/ares_process_fd/3.md)
