*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> getsockname (2)              
Title
Content
Arch
Section
 

GETSOCKNAME(2)

Contents


NAME    [Toc]    [Back]

     getsockname - get socket name

SYNOPSIS    [Toc]    [Back]

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

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

DESCRIPTION    [Toc]    [Back]

     getsockname()  returns the locally bound address information
for a specified
 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 structure
 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 information.


     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    [Toc]    [Back]

     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    [Toc]    [Back]

     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 parameter points to memory not  in  a
valid part of
                   the process address space.

SEE ALSO    [Toc]    [Back]

      
      
     accept(2), bind(2), getpeereid(2), getpeername(2), socket(2)

HISTORY    [Toc]    [Back]

     The getsockname() function call appeared in 4.2BSD.

BUGS    [Toc]    [Back]

     Names bound to sockets in the UNIX domain are  inaccessible;
getsockname
     returns a zero length name.

OpenBSD      3.6                           July      17,     1999
[ Back ]
 Similar pages
Name OS Title
mac_get_file FreeBSD get the label of a file, socket, socket peer or process
mac_get FreeBSD get the label of a file, socket, socket peer or process
mac_get_fd FreeBSD get the label of a file, socket, socket peer or process
mac_get_pid FreeBSD get the label of a file, socket, socket peer or process
mac_get_proc FreeBSD get the label of a file, socket, socket peer or process
BIO_s_socket NetBSD socket BIO
getsockname Tru64 Get the socket name
BIO_new_socket Tru64 Socket BIO
BIO_s_socket Tru64 Socket BIO
shutdown HP-UX shut down a socket
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service