getsockname(2)

getsockname2

Get socket name

Usage

#include <sys/socket.h>

int

getsockname(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len);

Overview

The getsockname() function returns the current address for the specified socket.

The address_len parameter should be initialized to indicate the amount of space pointed to by address. On return it contains the actual size of the address returned (in bytes).

The address is truncated if the buffer provided is too small.

Note: For the UNIX domain, the address length returned is the address_len parameter passed to the previous bind(2) system call and not the sa_len field of the address parameter passed to bind(2).

Return values

The getsockname() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

Errors

The getsockname() system call will succeed unless:

[EBADF]

The argument socket is not a valid file descriptor.

[EFAULT]

The address parameter points to memory not in a valid part of the process address space.

[EINVAL]

socket has been shut down.

[ENOBUFS]

Insufficient resources were available in the system to perform the operation.

[ENOTSOCK]

The argument socket is not a socket (e.g., a plain file).

[EOPNOTSUPP]

getsockname() is not supported for the protocol in use by socket.

Releases

155 releases since Mac OS X 10.0; the text changed 5 times.

  1. 10.0–10.3.9
  2. 10.4–10.4.11
  3. 10.5–10.5.8
  4. 10.6–10.10.5
  5. 10.11–10.13.6
  6. 10.14.1–26.5

Bugs

Names bound to sockets in the UNIX domain are inaccessible; getsockname() returns a zero-length address.

History

The getsockname() call appeared in 4.2BSD.

From xnu 12377.121.6 in macOS 26.5. Parsed by carta from the page's mdoc source.