GETRTABLE(2) | System Calls Manual | GETRTABLE(2)

# NAME

`getrtable`, `setrtable` — get or set the default routing table of the current process

# SYNOPSIS

`#include <sys/types.h>`
`#include <sys/socket.h>`

int
`getrtable`(void);

int
`setrtable`(int rtableid);

# DESCRIPTION

`getrtable`() and `setrtable`() manipulate the routing table and routing domain associated with the current process.

Only the superuser is allowed to change the process routing table if it is already set to a non-zero value.

# RETURN VALUES

`getrtable`() returns the routing table of the current process. Upon successful completion, `setrtable`() returns 0 if the call succeeds, -1 if it fails.

# ERRORS

The call succeeds unless:

[`EINVAL`]
  The value of the rtableid argument is not a valid routing table.
[`EPERM`]
  The user is not the superuser and the routing table of the calling process is already set to a non-zero value.

# SEE ALSO

getsockopt(2), route(8)

# HISTORY

The `getrtable`() and `setrtable`() system calls appeared in OpenBSD 4.8.

February 22, 2023 | Debian