HP-UX Reference (11i v1 00/12) - 2 System Calls (vol 5)

__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man2/!!!intro.2
________________________________________________________________
___ ___
g
getsockname(2) getsockname(2)
NAME
getsockname - get socket address
SYNOPSIS
#include <sys/socket.h>
AF_CCITT only:
#include <x25/x25addrstr.h>
int getsockname(int s, void *addr, int *addrlen);
_XOPEN_SOURCE_EXTENDED only (UNIX 98)
int getsockname(int s, struct sockaddr *addr, socklen_t *addrlen);
Obsolescent _XOPEN_SOURCE_EXTENDED only (UNIX 95)
int getsockname(int s, struct sockaddr *addr, size_t *addrlen);
DESCRIPTION
getsockname()
returns the local address of the socket indicated by s, where s is a socket descriptor.
addr points to a socket address structure in which this address is returned. addrlen points to a variable
that should be initialized to indicate the size of the address structure. On return it contains the actual size
of the address returned (in bytes). If addr does not point to enough space to contain the whole address of
the socket, only the first addrlen bytes of the address are returned.
AF_CCITT only:
The x25_host[] field of the addr struct returns the X.25 addressing information of the local socket s.
The
x25ifname[] field of the addr struct contains the name of the local X.25 interface through which
the call arrived.
RETURN VALUE
Upon successful completion,
getsockname() returns 0; otherwise, it returns 1 and sets
errno to
indicate the error.
ERRORS
getsockname() fails if any of the following conditions are encountered:
[EBADF] s is not a valid file descriptor.
[ENOTSOCK] s is a valid file descriptor, but it is not a socket.
[ENOBUFS] No buffer space is available to perform the operation.
[EFAULT] addr or addrlen are not valid pointers.
[EINVAL] The socket has been shut down.
[EOPNOTSUPP] Operation not supported for AF_UNIX sockets.
OBSOLESCENCE
Currently, the socklen_t and size_t types are the same size. This is compatible with both the UNIX
95 and UNIX 98 profiles. However, in a future release, socklen_t might be a different size. In that
case, passing a size_t pointer will evoke compile-time warnings, which must be corrected in order for the
application to behave correctly. Applications that use socklen_t now, where appropriate, will avoid
such migration problems. On the other hand, applications that need to be portable to the UNIX 95 profile
should follow the X/Open specification (see xopen_networking(7)).
FUTURE DIRECTION
Currently, the default behavior is the HP-UX BSD Sockets; however, it might be changed to X/Open
Sockets in a future release. At that time, any HP-UX BSD Sockets behavior that is incompatible with
X/Open Sockets might be obsoleted. Applications that conform to the X/Open specification now will avoid
migration problems (see xopen_networking(7)).
MULTITHREAD USAGE
The
getsockname() system call is thread-safe. It has a cancellation point; and it is async-cancel safe,
async-signalsafe, and fork-safe.
Section 2110 1 HP-UX Release 11i: December 2000
___
___