#### 16.9.4 Who is Connected to Me? ¶

Function: `int` getpeername `(int socket, struct sockaddr *addr, socklen_t *length-ptr)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  The `getpeername` function returns the address of the socket that socket is connected to; it stores the address in the memory space specified by addr and length-ptr. It stores the length of the address in `*length-ptr`.

  See Socket Addresses, for information about the format of the address. In some operating systems, `getpeername` works only for sockets in the Internet domain.

  The return value is `0` on success and `-1` on error. The following `errno` error conditions are defined for this function:

  `EBADF`

    The argument socket is not a valid file descriptor.

  `ENOTSOCK`

    The descriptor socket is not a socket.

  `ENOTCONN`

    The socket socket is not connected.

  `ENOBUFS`

    There are not enough internal buffers available.