.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1983, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)getpeername.2 6.5 (Berkeley) 3/10/91 .\" .\" Modified Sat Jul 24 16:37:50 1993 by Rik Faith .\" Modified Thu Jul 30 14:37:50 1993 by Martin Schulze .\" Modified Sun Mar 28 21:26:46 1999 by Andries Brouwer .\" Modified 17 Jul 2002, Michael Kerrisk .\" Added 'socket' to NAME, so that "man -k socket" will show this page. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getpeername 2 "31 октября 2023 г." "Linux man\-pages 6.06" .SH ИМЯ getpeername \- получает имя подключившегося сокета .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBint getpeername(int \fP\fIsockfd\fP\fB, struct sockaddr *restrict \fP\fIaddr\fP\fB,\fP \fB socklen_t *restrict \fP\fIaddrlen\fP\fB);\fP .fi .SH ОПИСАНИЕ \fBgetpeername\fP() возвращает адрес машины, подключившейся к сокету \fIsockfd\fP, в буфер, указанный \fIaddr\fP. В параметре \fIaddrlen\fP должно быть указано, сколько места выделено, на которое указывает \fIaddr\fP. По возвращении он содержит реальный размер памяти, занимаемый возвращаемым именем (в байтах). Имя обрезается, если буфер окажется слишком мал. .P Возвращаемый адрес урежется, если предоставленный буфер окажется слишком маленьким; в этом случае в \fIaddrlen\fP будет возвращено значение большее чем было в вызове. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, zero is returned. On error, \-1 is returned, and \fIerrno\fP is set to indicate the error. .SH ОШИБКИ .TP \fBEBADF\fP Аргумент \fIsockfd\fP не является допустимым файловым дескриптором. .TP \fBEFAULT\fP Аргумент \fIaddr\fP указывает на память в недопустимой части адресуемого пространства процесса. .TP \fBEINVAL\fP Неправильное значение аргумента \fIaddrlen\fP (например, отрицательное). .TP \fBENOBUFS\fP Недостаточно ресурсов в системе для выполнения операции. .TP \fBENOTCONN\fP Сокет не подключён. .TP \fBENOTSOCK\fP Файловый дескриптор \fIsockfd\fP указывает не на каталог. .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, SVr4, 4.4BSD (first appeared in 4.2BSD). .SH ЗАМЕЧАНИЯ Для потоковых сокетов после выполнения \fBconnect\fP(2) любой сокет может вызвать \fBgetpeername\fP() для получения адреса соседа (peer). С другой стороны, дейтаграмные сокеты не устанавливают соединения. Вызов \fBconnect\fP(2) для дейтаграмного сокета просто задаст адрес соседа в исходящих дейтаграммах, посылаемых с помощью \fBwrite\fP(2) или \fBrecv\fP(2). Вызывающий \fBconnect\fP(2) может использовать \fBgetpeername\fP() для получения адреса соседа., который был установлен у сокета ранее. Однако, сокет соседа не знает про это и вызов \fBgetpeername\fP() для сокета соседа не вернёт полезной информации (если сосед также не вызвал \fBconnect\fP(2)). Заметим, что получатель дейтаграммы может получить адрес отправителя, если использует \fBrecvfrom\fP(2). .SH "СМ. ТАКЖЕ" \fBaccept\fP(2), \fBbind\fP(2), \fBgetsockname\fP(2), \fBip\fP(7), \fBsocket\fP(7), \fBunix\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .