.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2002 Andries Brouwer .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" This replaces an earlier man page written by Walter Harms .\" . .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ttyslot 3 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH НАИМЕНОВАНИЕ ttyslot \- поиск слота текущего терминала пользователя в определённом файле .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP, \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP /* See NOTES */ .P \fBint ttyslot(void);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBttyslot\fP(): .nf Since glibc 2.24: _DEFAULT_SOURCE From glibc 2.20 to glibc 2.23: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) glibc 2.19 and earlier: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) .fi .SH ОПИСАНИЕ Исходная функция \fBttyslot\fP() возвращает индекс записи текущего пользователя в определённом файле. .P «В каком файле?» \(em спросите вы. Что же, для начала обратимся к истории. .SS "Доисторические времена" There used to be a file \fI/etc/ttys\fP in UNIX\ V6, that was read by the \fBinit\fP(1) program to find out what to do with each terminal line. Each line consisted of three characters. The first character was either \[aq]0\[aq] or \[aq]1\[aq], where \[aq]0\[aq] meant "ignore". The second character denoted the terminal: \[aq]8\[aq] stood for "/dev/tty8". The third character was an argument to \fBgetty\fP(8) indicating the sequence of line speeds to try (\[aq]\-\[aq] was: start trying 110 baud). Thus a typical line was "18\-". A hang on some line was solved by changing the \[aq]1\[aq] to a \[aq]0\[aq], signaling init, changing back again, and signaling init again. .P In UNIX\ V7 the format was changed: here the second character was the argument to \fBgetty\fP(8) indicating the sequence of line speeds to try (\[aq]0\[aq] was: cycle through 300\-1200\-150\-110 baud; \[aq]4\[aq] was for the on\-line console DECwriter) while the rest of the line contained the name of the tty. Thus a typical line was "14console". .P В последующих системах синтаксис был ещё разнообразней. В системах, основанных на System V, использовался \fI/etc/inittab\fP. .SS "Доисторические времена (2)" С другой стороны, существовал файл \fI/etc/utmp\fP, в котором перечислены люди, вошедшие в систему. Этот файл управлялся с помощью \fBlogin\fP(1). Он имел фиксированную длину, а соответствующий индекс в файле определялся \fBlogin\fP(1) с помощью вызова \fBttyslot\fP() и нахождения номера строки в \fI/etc/ttys\fP (начиная с 1). .SS "Семантика ttyslot" Таким образом, функция \fBttyslot\fP() возвращает из файла \fI/etc/ttys\fP индекс управляющего терминала вызывающего процесса, который является таким же (обычно), что и индекс записи текущего пользователя в файле \fI/etc/utmp\fP. В BSD файл \fI/etc/ttys\fP все ещё был, однако в System V его уже не было, и из\-за этого на него невозможно было ссылаться. Поэтому в подобных системах в документации указано, что \fBttyslot\fP() возвращает индекс текущего пользователя на основании базы данных пользователей. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" If successful, this function returns the slot number. On error (e.g., if none of the file descriptors 0, 1, or 2 is associated with a terminal that occurs in this data base) it returns 0 on UNIX\ V6 and V7 and BSD\-like systems, but \-1 on System V\-like systems. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBttyslot\fP() T} Безвредность в нитях MT\-Unsafe .TE .SH ВЕРСИИ Файл utmp в различных системах может находиться в различных местах: \fI/etc/utmp\fP, \fI/var/adm/utmp\fP, \fI/var/run/utmp\fP. .SH СТАНДАРТЫ Отсутствуют. .SH ИСТОРИЯ SUSv1; в SUSv2 отмечена как УСТАРЕВШАЯ; удалена в POSIX.1\-2001. SUSv2 требует возврата \-1 в случае ошибки. .P Реализация этой функции в glibc2 читает файл \fB_PATH_TTYS\fP, определённый в \fI\fP как «/etc/ttys». В случае ошибки она возвращает 0. Так как в системах Linux файла «/etc/ttys» обычно нет, то она всегда возвращает 0. .P В BSD\-подобных системах и Linux объявление \fBttyslot\fP() находится в файле \fI\fP. В System V\-подобных системах объявление находится в файле \fI\fP. Начиная с glibc 2.24 в \fI\fP также поместили это объявление под следующий макрос тестирования свойств: .P .in +4n .EX (_XOPEN_SOURCE >= 500 || (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED)) && ! (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) .EE .in .P .\" .SH HISTORY .\" .BR ttyslot () .\" appeared in UNIX V7. В Minix также есть \fIfttyslot\fP(\fIfd\fP). .SH "СМОТРИТЕ ТАКЖЕ" \fBgetttyent\fP(3), \fBttyname\fP(3), \fButmp\fP(5) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Azamat Hackimov , Dmitry Bolkhovskikh , 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 .