.\" -*- 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 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH НАИМЕНОВАНИЕ getpeername \- получает имя подключившегося сокета .SH БИБЛИОТЕКА Стандартная библиотека языка C (\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 "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается 0. При ошибке возвращается \-1, а в \fIerrno\fP содержится код ошибки. .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 (впервые появилось в 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 , Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .