# modbus_reply_exception(3) Manual Page

## NAME

modbus_reply_exception - send an exception reponse

## SYNOPSIS

*int modbus_reply_exception(modbus_t *ctx, const uint8_t *req, unsigned int exception_code);

## DESCRIPTION

The modbus_reply_exception() function shall send an exception response based on the exception_code in argument.

The libmodbus provides the following exception codes:

- MODBUS_EXCEPTION_ILLEGAL_FUNCTION (1)

- MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS (2)

- MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE (3)

- MODBUS_EXCEPTION_SLAVE_OR_SERVER_FAILURE (4)

- MODBUS_EXCEPTION_ACKNOWLEDGE (5)

- MODBUS_EXCEPTION_SLAVE_OR_SERVER_BUSY (6)

- MODBUS_EXCEPTION_NEGATIVE_ACKNOWLEDGE (7)

- MODBUS_EXCEPTION_MEMORY_PARITY (8)

- MODBUS_EXCEPTION_NOT_DEFINED (9)

- MODBUS_EXCEPTION_GATEWAY_PATH (10)

- MODBUS_EXCEPTION_GATEWAY_TARGET (11)

The initial request req is required to build a valid response.

## RETURN VALUE

The modbus_reply_exception() function shall return the length of the response sent if successful. Otherwise it shall return -1 and set errno.

## ERRORS

EINVAL

  The exception code is invalid

## SEE ALSO

modbus_reply(3) libmodbus(7)

## AUTHORS

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