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-signal safe, and fork-safe.
AUTHOR
getsockname()
was developed by HP and the University of California, Berkeley.
STANDARDS CONFORMANCE
getsockname(): XPG4