getpeername - get name of connected peer
int getpeername(int s, struct sockaddr *name, socklen_t
Getpeername returns the name of the peer connected to
socket s. The namelen parameter should be initialized to
indicate the amount of space pointed to by name. On
return it contains the actual size of the name returned
(in bytes). The name is truncated if the buffer provided
is too small.
On success, zero is returned. On error, -1 is returned,
and errno is set appropriately.
EBADF The argument s is not a valid descriptor.
The argument s is a file, not a socket.
The socket is not connected.
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.
SVr4, 4.4BSD (the getpeername function call first appeared
The third argument of getpeername is in reality an `int *'
(and this is what BSD 4.* and libc4 and libc5 have). Some
POSIX confusion resulted in the present socklen_t. The
draft standard has not been adopted yet, but glibc2
already follows it and also has socklen_t. See also
accept(2), bind(2), getsockname(2)