getpeername()函式 Unix/Linux


getpeername - 獲取連線的對等通訊端的名稱

內容簡介

#include <sys/socket.h>

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

描述

getpeername() 返回連線到通訊端s的同伴的名字。namelen 引數應被初始化,以指示的空間指向金額的名字。返回時它包含(以位元組為單位)返回的名稱的實際大小。該名稱被截斷,如果提供的緩衝區太小。

返回值

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

錯誤

標籤 描述
EBADF The argument s is not a valid descriptor.
EFAULT The name parameter yiibais to memory not in a valid part of the process address space.
EINVAL namelen is invalid (e.g., is negative).
ENOBUFS
  Insufficient resources were available in the system to perform the operation.
ENOTCONN
  The socket is not connected.
ENOTSOCK
  The argument s is a file, not a socket.

遵循於

SVr4, 4.4BSD (the getpeername() function call first appeared in 4.2BSD), POSIX.1-2001.

注意

The third argument of getpeername() is in reality an int * (and this is what 4.x BSD and libc4 and libc5 have). Some POSIX confusion resulted in the present socklen_t, also used by glibc. See also accept(2).

另請參閱