Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

GETUT(3C)

НАЗВАНИЕ
getutent, getutid, getutline, pututline, setutent, endutent, utmpname - доступ к utmp-файлу

СИНТАКСИС


	#include <sys/types.h>

	#include <utmp.h>

	

	struct utmp *getutent ( )

	

	struct utmp *getutid (id)

	struct utmp *id;

	

	struct utmp *getutline (line)

	struct utmp *line;

	

	void pututline (utmp)

	struct utmp *utmp;

	

	void setutent ( )

	

	void endutent ( )

	

	void utmpname (file)

	char *file;

ОПИСАНИЕ
Результатом функций getutent, getutid и getutline является указатель на структуру следующего типа:


	struct utmp {

	  char ut_user[8];  /* Входное имя пользователя */

	  char ut_id[4];    /* Идентификатор  из  файла

	                  /etc/inittab (обычно номер линии) */

	  char ut_line[12]; /* Имя  устройства (console, tty xx) */

	  short ut_pid;     /* Идентификатор процесса */

	  short ut_type;    /* Тип элемента */

	  struct exit_status {

	    short e_termination; /* Системный  код   завершения

	                            процесса */

	    short e_exit;        /* Пользовательский код завер-

	                            шения */

	  } ut_exit;        /* Код  завершения  процесса, поме-

	                       ченного как DEAD_PROCESS */

	  time_t ut_time;   /* Время создания элемента */

	};

Функция getutent читает следующий элемент из файла типа utmp. Если файл еще не открыт, он открывается. При достижении конца файла выполнение функции завершается неудачей.

Функция getutid, начиная с текущей позиции, разыскивает элемент utmp-файла, в котором поле ut_type соответствует значению id->ut_type. Если компонент id->ut_type равен RUN_LVL, BOOT_TIME, OLD_TIME, или NEW_TIME, то требуется точное равенство типов. Если же компонент id->ut_type равен INIT_PROCESS, LOGIN_PROCESS, USER_PROCESS, или DEAD_PROCESS, то функция getutid вернет указатель на первый элемент, тип которого равен одному из четырех перечисленных, и поле ut_id соответствует значению id->ut_id. Функция getutid завершается неудачей, если ничего не находит до конца файла.

Функция getutline, начиная с текущей позиции, разыскивает элемент utmp-файла, тип которого равен LOGIN_PROCESS или USER_PROCESS, а поле ut_line соответствует значению line->ut_line. Функция getutline завершается неудачей, если ничего не находит до конца файла.

Функция pututline записывает указанную utmp-структуру в utmp-файл. При этом для поиска нужного места используется функция getutid, если обнаруживается, что текущая позиция не является подходящей. Предполагается, что пользователь, перед тем как обратиться к pututline, установил нужную текущую позицию с помощью одной из функций getut. Если это сделано, pututline не будет производить поиск. Если pututline не обнаружит подходящего места для нового элемента, элемент будет добавлен в конец файла.

Функция setutent устанавливает указатель текущей позиции на начало файла. Это должно быть сделано перед поиском нового элемента, если предполагается, что поиск должен проводиться во всем файле.

Функция endutent закрывает открытый файл.

Функция utmpname позволяет изменить имя обрабатываемого файла с /etc/utmp на любое другое. Предполагается, что чаще всего этим другим именем будет /etc/wtmp. Если файл не существует, он не будет создаваться до первого обращения к нему. Функция utmpname не отрывает файл, она только закрывает открытый файл и запоминает имя нового файла.

ФАЙЛЫ


	/etc/utmp

	/etc/wtmp

СМ. ТАКЖЕ
ttyslot(3C), utmp(4).

ДИАГНОСТИКА
При ошибке ввода/вывода возвращается пустой указатель (NULL). Ошибка чтения может быть вызвана отсутствием прав доступа или достижением конца файла.

ПРИМЕЧАНИЯ
Элемент, к которому было последнее обращение, сохраняется в статической структуре, поэтому доступ к нескольким элементам требует копирования структур. При каждом обращении к getutid или getutline вначале анализируется статическая структура. Если она оказывается подходящей, никакого поиска не производится. Чтобы использовать getutline для поиска нескольких вхождений, необходимо очищать статическую структуру после успешного поиска, иначе getutline будет возвращать все время одно и то же. Из правила очистки структуры перед последующим чтением есть одно исключение. Если неявное чтение при pututline обнаруживает, что оно находится на нужном месте в файле, то содержимое статической структуры, возвращаемой getutent, getutid или getutline, не нужно очищать, если пользователь только поменял ее содержимое и передал указатель функции pututline.

Все функции пользуются стандартным буферизованным вводом/выводом, однако pututline использует нестандартный небуферизованный вывод, чтобы разрешить нескольким процессам модифицировать файлы utmp и wtmp.

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...