---
name: "modbus_set_response_timeout"
section: "3"
platform: "linux"
package: "libmodbus-dev"
version: "3.1.6-2.1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/modbus_set_response_timeout"
---

# modbus\_set\_response\_timeout(3)

set timeout for response

## NAME

modbus\_set\_response\_timeout - set timeout for response

## SYNOPSIS

**int modbus\_set\_response\_timeout(modbus\_t \****ctx***, uint32\_t** *to\_sec***, uint32\_t** *to\_usec***);**

## DESCRIPTION

The **modbus\_set\_response\_timeout()** function shall set the timeout interval used to wait for a response. When a byte timeout is set, if elapsed time for the first byte of response is longer than the given timeout, an ETIMEDOUT error will be raised by the function waiting for a response. When byte timeout is disabled, the full confirmation response must be received before expiration of the response timeout.

The value of *to\_usec* argument must be in the range 0 to 999999.

## RETURN VALUE

The function shall return 0 if successful. Otherwise it shall return -1 and set errno.

## ERRORS

**EINVAL**

The argument *ctx* is NULL, or both *to\_sec* and *to\_usec* are zero, or *to\_usec* is larger than 1000000.

## EXAMPLE

```
uint32_t old_response_to_sec;
uint32_t old_response_to_usec;
/* Save original timeout */
modbus_get_response_timeout(ctx, &old_response_to_sec, &old_response_to_usec);
/* Define a new timeout of 200ms */
modbus_set_response_timeout(ctx, 0, 200000);
```

## SEE ALSO

[**modbus\_get\_response\_timeout**(3)](/modbus_get_response_timeout/3.md) [**modbus\_get\_byte\_timeout**(3)](/modbus_get_byte_timeout/3.md) [**modbus\_set\_byte\_timeout**(3)](/modbus_set_byte_timeout/3.md)

## AUTHORS

The libmodbus documentation was written by Stéphane Raimbault \<stephane.raimbault@gmail.com\>
