Программирование в стандарте POSIX


Служебные программы, обслуживающие взаимодействие пользователей


Активными мы будем называть пользователей, работающих в системе в некоторый момент времени.

Чтобы узнать, какие пользователи активны и за какими терминалами они работают, можно воспользоваться служебной программой

who

(заметим, что стандарт POSIX-2001 трактует ее как необязательную, входящую в расширение "Мобильность пользователей").

Выдача утилиты who может выглядеть, например, так (правый столбец означает время входа в систему):

galat ttyS4 Aug 22 12:41 kost ttyS6 Aug 22 10:09

К той же дополнительной категории, что и who, принадлежат утилиты write, talk и mesg (а также описанная выше служебная программа newgrp).

После установления соединения утилита

write имя_пользователя [терминал]

позволяет построчно пересылать стандартный ввод отправителя на терминал пользователя-получателя. Аргументы имя_пользователя и терминал задаются в том виде, как их выводит служебная программа who. Необязательный аргумент [терминал] нужен в тех случаях, когда пользователь-получатель вошел в систему с нескольких терминалов.

Утилиту

talk имя_пользователя [терминал]

можно рассматривать как более современный аналог write, поскольку она имеет экранный интерфейс и поддерживает двустороннее взаимодействие активных пользователей.

С помощью служебной программы

mesg [y|n]

пользователь может разрешить или запретить установление соединений со своим терминалом. При вызове без аргументов mesg выдает текущий статус терминала.

Приведем пример употребления описанных служебных программ. Рассылку сообщения-аргумента всем активным пользователям можно реализовать посредством shell-процедуры (см. пример 3.7).

who | while read a b c do write $a $b << ! $1 ! done

Листинг 3.7. Пример использования утилит who и write. (html, txt)

Обратим внимание на использование во вставке значения аргумента shell-процедуры.

Базовым средством обеспечения почтового взаимодействия между пользователями, согласно стандарту POSIX-2001, является служебная программа mailx. Она позволяет и отправлять, и получать письма.


Начало  Назад  Вперед