Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       login, logout - добавление записей utmp и wtmp

LIBRARY

       System utilities library (libutil, -lutil)

СИНТАКСИС

       #include <utmp.h>

       void login(const struct utmp *ut);
       int logout(const char *ut_line);

ОПИСАНИЕ

       В  файл  utmp  записываются  все,  кто  в  данный момент пользуется системой. В файле wtmp
       записываются все входы и выходы пользователей. См utmp(5).

       Функция login() принимает указанные struct utmp, ut и записывает их в файлы utmp и wtmp.

       Функция logout() очищает запись в файле utmp.

   Особенности GNU
       Если быть точнее, функция login() получает структуру ut в  качестве  аргумента,  заполняет
       поле  ut->ut_type  (если  такое  поле есть) значением USER_PROCESS и поле ut->ut_pid (если
       такое поле есть) идентификатором вызывающего процесса  (PID).  После  этого  она  пытается
       заполнить  поле  ut->ut_line.  Функция  берёт  первый  stdin,  stdout,  stderr, являющийся
       терминалом, и сохраняет соответствующий путь (за исключением /dev/ спереди)  в  это  поле,
       после  чего  записывает  структуру  в  файл  utmp.  В  случае, если имя терминала не будет
       обнаружено, данное поле будет заполнено «???», а структура не будет записана в файл  utmp.
       После этого структура будет записана в файл wtmp.

       Функция  logout() ищет в файле utmp запись, соответствующую аргументу ut_line. Если запись
       находится,  она  обновляется  заполнением  нулям  полей  ut_name  и  ut_host,  обновляется
       временная  отметка  в  поле ut_tv, а поле ut_type (если такое поле есть) устанавливается в
       DEAD_PROCESS.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Функция logout() возвращает 1, если запись была успешно записана в базу данных, и 0,  если
       возникла ошибка.

ФАЙЛЫ

       /var/run/utmp
              база учётных записей пользователей, настраивается через _PATH_UTMP в <paths.h>

       /var/log/wtmp
              файл журнала учёта пользователей, настраивается через _PATH_WTMP в <paths.h>

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌──────────────────┬──────────────────────┬───────────────────────────────────────────────┐
       │ИнтерфейсАтрибутЗначение                                      │
       ├──────────────────┼──────────────────────┼───────────────────────────────────────────────┤
       │login(), logout() │ Безвредность в нитях │ MT-Unsafe race:utent sig:ALRM timer           │
       └──────────────────┴──────────────────────┴───────────────────────────────────────────────┘
       В  приведённой  выше  таблице  utent  в  race:utent  означает,  что  если любая из функций
       setutent(3), getutent(3) или endutent(3)  используется  одновременно  в  нескольких  нитях
       программы,  то  может  возникнуть  состязательность  по  данным. Эти функции вызываются из
       login() и logout(), поэтому мы используем race:utent для напоминания.

СТАНДАРТЫ

       Не является частью POSIX.1. Присутствует в BSD.

ЗАМЕЧАНИЯ

       Заметим, что поле ut_user структуры struct utmp в BSD  называется  ut_name.  Поэтому  поле
       ut_name определено как псевдоним ut_user в <utmp.h>.

СМ. ТАКЖЕ

       getutent(3), utmp(5)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства    был    сделан    Artyom    Kunyov
       <artkun@guitarplayer.ru>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh
       <d20052005@yandex.ru>,  Katrin  Kutepova  <blackkatelv@gmail.com>, Konstantin Shvaykovskiy
       <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.