Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETSOCKNAME(2)		    BSD	System Calls Manual		GETSOCKNAME(2)

NAME
     getsockname -- get	socket name

SYNOPSIS
     #include <sys/socket.h>

     int
     getsockname(int s,	struct sockaddr	*name, socklen_t *namelen);

DESCRIPTION
     getsockname() returns the locally bound address information for a speci-
     fied socket.

     Common uses of this function are as follows:

     +o	 When bind(2) is called	with a port number of 0	(indicating the	kernel
	 should	pick an	ephemeral port)	getsockname() is used to retrieve the
	 kernel-assigned port number.

     +o	 When a	process	calls bind(2) on a wildcard IP address,	getsockname()
	 is used to retrieve the local IP address for the connection.

     +o	 When a	function wishes	to know	the address family of a	socket,
	 getsockname() can be used.

     getsockname() takes three parameters:

     s contains	the file descriptor for	the socket to be looked	up.

     name points to a sockaddr structure which will hold the resulting address
     information.  Normal use requires one to use a structure specific to the
     protocol family in	use, such as sockaddr_in (IPv4)	or sockaddr_in6
     (IPv6), cast to a (struct sockaddr	*).

     For greater portability (such as newer protocol families) the new struc-
     ture sockaddr_storage exists.  sockaddr_storage is	large enough to	hold
     any of the	other sockaddr_* variants.  On return, it should be cast to
     the correct sockaddr type,	according to the current protocol family.

     namelen indicates the amount of space pointed to by name, in bytes.  Upon
     return, namelen is	set to the actual size of the returned address infor-
     mation.

     If	the address of the destination socket for a given socket connection is
     needed, the getpeername(2)	function should	be used	instead.

     If	name does not point to enough space to hold the	entire socket address,
     the result	will be	truncated to namelen bytes.

RETURN VALUES
     On	success, getsockname() returns a 0, and	namelen	is set to the actual
     size of the socket	address	returned in name.  Otherwise, errno is set,
     and a value of -1 is returned.

ERRORS
     If	getsockname() fails, errno is set to one of the	following:

     [EBADF]		The argument s is not a	valid descriptor.

     [ENOTSOCK]		The argument s is a file, not a	socket.

     [ENOBUFS]		Insufficient resources were available in the system to
			perform	the operation.

     [EFAULT]		The name or namelen parameter points to	memory not in
			a valid	part of	the process address space.

SEE ALSO
     accept(2),	bind(2), getpeername(2), socket(2), getpeereid(3)

STANDARDS
     The getsockname() function	conforms to IEEE Std 1003.1-2008 ("POSIX.1").

HISTORY
     The getsockname() function	call appeared in 4.2BSD.

BSD			      September	10, 2015			   BSD

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=getsockname&sektion=2&manpath=OpenBSD+6.5>

home | help