RPCBIND(3) Library Functions Manual RPCBIND(3)

# [NAME](#NAME)

`rpcb_getmaps`, `rpcb_getaddr`, `rpcb_gettime`, `rpcb_rmtcall`, `rpcb_set`, `rpcb_unset` — library routines for RPC bind service

# [SYNOPSIS](#SYNOPSIS)

`#include <rpc/rpc.h>`

`rpcblist *`  
`rpcb_getmaps`(`const struct netconfig *netconf`, `const char *host`);

`bool_t`  
`rpcb_getaddr`(`const rpcprog_t prognum`, `const rpcvers_t versnum`, `const struct netconfig *netconf`, `struct netbuf *svcaddr`, `const char *host`);

`bool_t`  
`rpcb_gettime`(`const char *host`, `time_t * timep`);

`enum clnt_stat`  
`rpcb_rmtcall`(`const struct netconfig *netconf`, `const char *host`, `const rpcprog_t prognum, const rpcvers_t versnum`, `const rpcproc_t procnum, const xdrproc_t inproc`, `const caddr_t in`, `const xdrproc_t outproc`, `const caddr_t out`, `const struct timeval tout, const struct netbuf *svcaddr`);

`bool_t`  
`rpcb_set`(`const rpcprog_t prognum`, `const rpcvers_t versnum`, `const struct netconfig *netconf`, `const struct netbuf *svcaddr`);

`bool_t`  
`rpcb_unset`(`const rpcprog_t prognum`, `const rpcvers_t versnum`, `const struct netconfig *netconf`);

# [DESCRIPTION](#DESCRIPTION)

These routines allow client C programs to make procedure calls to the RPC binder service. (see [rpcbind(8)](/man/os/libtirpc/rpcbind.8)) maintains a list of mappings between programs and their universal addresses.

# [Routines](#Routines)

[`rpcb_getmaps`](#rpcb_getmaps)()

An interface to the rpcbind service, which returns a list of the current RPC program-to-address mappings on `host`. It uses the transport specified through `netconf` to contact the remote rpcbind service on `host`. This routine will return `NULL`, if the remote rpcbind could not be contacted.

[`rpcb_getaddr`](#rpcb_getaddr)()

An interface to the rpcbind service, which finds the address of the service on `host` that is registered with program number `prognum`, version `versnum`, and speaks the transport protocol associated with `netconf`. The address found is returned in `svcaddr`. The `svcaddr` argument should be preallocated. This routine returns `TRUE` if it succeeds. A return value of `FALSE` means that the mapping does not exist or that the RPC system failed to contact the remote rpcbind service. In the latter case, the global variable `rpc_createerr` (see [rpc\_clnt\_create(3)](/man/os/libtirpc/rpc_clnt_create.3)) contains the RPC status.

[`rpcb_gettime`](#rpcb_gettime)()

This routine returns the time on `host` in `timep`. If `host` is `NULL`, `rpcb_gettime`() returns the time on its own machine. This routine returns `TRUE` if it succeeds, `FALSE` if it fails. The `rpcb_gettime`() function can be used to synchronize the time between the client and the remote server.

`rpcb_rmtcall`()

An interface to the rpcbind service, which instructs rpcbind on `host` to make an RPC call on your behalf to a procedure on that host. The [`netconfig`](#netconfig)() structure should correspond to a connectionless transport. The `svcaddr` argument will be modified to the server's address if the procedure succeeds (see [`rpc_call`](#rpc_call)() and [`clnt_call`](#clnt_call)() in [rpc\_clnt\_calls(3)](/man/os/libtirpc/rpc_clnt_calls.3) for the definitions of other arguments).

This procedure should normally be used for a “ping” and nothing else. This routine allows programs to do lookup and call, all in one step.

Note: Even if the server is not running [`rpcb_rmtcall`](#rpcb_rmtcall)() does not return any error messages to the caller. In such a case, the caller times out.

Note: [`rpcb_rmtcall`](#rpcb_rmtcall~2)() is only available for connectionless transports.

[`rpcb_set`](#rpcb_set)()

An interface to the rpcbind service, which establishes a mapping between the triple \[`prognum`, `versnum`, `netconf->nc_netid`] and `svcaddr` on the machine's rpcbind service. The value of `nc_netid` must correspond to a network identifier that is defined by the netconfig database. This routine returns `TRUE` if it succeeds, `FALSE` otherwise. (See also [`svc_reg`](#svc_reg)() in [rpc\_svc\_calls(3)](/man/os/libtirpc/rpc_svc_calls.3).) If there already exists such an entry with rpcbind, `rpcb_set`() will fail.

[`rpcb_unset`](#rpcb_unset)()

An interface to the rpcbind service, which destroys the mapping between the triple \[`prognum`, `versnum`, `netconf->nc_netid`] and the address on the machine's rpcbind service. If `netconf` is `NULL`, `rpcb_unset`() destroys all mapping between the triple \[`prognum`, `versnum`, all-transports] and the addresses on the machine's rpcbind service. This routine returns `TRUE` if it succeeds, `FALSE` otherwise. Only the owner of the service or the super-user can destroy the mapping. (See also [`svc_unreg`](#svc_unreg)() in [rpc\_svc\_calls(3)](/man/os/libtirpc/rpc_svc_calls.3).)

# [AVAILABILITY](#AVAILABILITY)

These functions are part of libtirpc.

# [ENVIRONMENT](#ENVIRONMENT)

If RPCB\_V2FIRST is defined, rpcbind protocol version tryout algorithm changes from v4,v2,v3 to v2,v4,v3.

# [SEE ALSO](#SEE_ALSO)

[rpc\_clnt\_calls(3)](/man/os/libtirpc/rpc_clnt_calls.3), [rpc\_svc\_calls(3)](/man/os/libtirpc/rpc_svc_calls.3), [rpcbind(8)](/man/os/libtirpc/rpcbind.8), [rpcinfo(8)](/man/os/libtirpc/rpcinfo.8)

May 7, 1993 Linux 4.19.0-gvisor

---

Document: rpcbind(3t) from libtirpc 1.3.8-r0 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/libtirpc/libtirpc/1.3.8/libtirpc-1.3.8.tar.bz2
