Man pages на русском

         

Man pages на русском


ENV(1)


НАЗВАНИЕ

env - формирование окружения для выполнения команды

СИНТАКСИС

env [-] [имя=значение ...] [команда аргумент ...]

ОПИСАНИЕ

Утилита env получает текущее окружение, модифицирует его в соответствии со своими аргументами, и затем выполняет команду в модифицированном окружении. Пары имя=значение об единяются с наследуемым окружением перед выполнением команды. При наличии флага "-" наследуемое окружение полностью игнорируется, и команда выполняется с тем окружением, которое определено командной строкой env.

Если команда не задана, то сформированное окружение выдается на стандартный вывод, по одной паре имя=зачение в строке.

СМ. ТАКЖЕ

.

, , в Справочнике программиста.



EXP(3M)


НАЗВАНИЕ

exp, log, log10, pow, sqrt - показательная, логарифмическая, степенная функции и функция извлечения квадратного корня

СИНТАКСИС

#include <math.h>

double exp (x) double x;

double log (x) double x;

double log10 (x) double x;

double pow (x, y) double x, y;

double sqrt (x) double x;

ОПИСАНИЕ

Функция exp возвращает e^x.

Функция log возвращает натуральный логарифм аргумента x. Значение x должно быть положительным.

Функция log10 возвращает логарифм по основанию 10 аргумента x. Значение x должно быть положительным.

Функция pow возвращает x^y. Если значение x равно 0, то значение y должно быть положительным. Если значение x отрицательно, то значение y должно быть целым.

Функция sqrt возвращает неотрицательное значение квадратного корня из x. Значение x не может быть отрицательным.

СМ. ТАКЖЕ

, , .

ДИАГНОСТИКА

Функция exp возвращает значение HUGE [см. ], если представление результирующего значения приводит к переполнению, и 0 - если к исчезновению порядка. В обоих случаях переменной errno присваивается значение ERANGE.

При неположительных аргументах функции log и log10 возвращают значение -HUGE и переменной errno присваивается значение EDOM. Кроме того, в стандартный протокол выдается сообщение о выходе за границы области определения или, при x=0, о попадании в точку сингулярности.

Функция pow возвращает нулевое значение, а переменной errno присваивается значение EDOM в случаях:

Если x=0 и значение y неположительно. Если значение x отрицательно и y не является целым.

В обоих случаях в стандартный протокол будет выдано сообщение о выходе за границы области определения. Если представление результирующего значения функции pow приводит к переполнению или к исчезновению порядка, то pow возвращает соответственно +HUGE, -HUGE или 0. Переменной errno присваивается значение ERANGE.

Функция sqrt возвращает нулевое значение, а переменной errno присваивается значение EDOM в случае, если x отрицательно. В стандартный протокол будет выдано сообщение о выходе за границы области определения.

Изложенная процедура обработки ошибок может быть изменена посредством функции .



Man pages на русском


НАЗВАНИЕ

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

СМ. ТАКЖЕ

, .

ДИАГНОСТИКА

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

ПРИМЕЧАНИЯ

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

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



PACK(1)


НАЗВАНИЕ

pack - упаковка файлов

СИНТАКСИС

pack [-] [-f] файл ...

ОПИСАНИЕ

Команда pack предпринимает попытку сохранить указанные файлы в сжатой форме, то есть упаковать информацию. Когда только возможно (и имеет смысл), каждый входной файл заменяется упакованным вариантом с именем файл.z, который имеет тот же режим доступа, те же даты доступа и модификации, того же владельца. Опция -f вызывает принудительную упаковку файла. Она используется для того, чтобы упаковать весь каталог, даже если для некоторых файлов это невыгодно. Если команда выполняется успешно, то исходный файл удаляется. Упакованные файлы могут быть преобразованы в свою первоначальную форму с помощью команд или .

Командой pack используется метод кодирования Хаффмана (с минимальной избыточностью) на побайтной основе. Если используется опция -, то устанавливается внутренний флаг, определяющий выдачу на стандартный вывод количества использований каждого байта, относительную частоту использования и код для байта. Дополнительное задание опции - на месте аргумента файл устанавливает и сбрасывает этот внутренний флаг.

Итоговая степень сжатия зависит от размера исходного файла и от распределения частоты символов. Так как дерево декодировки занимает начало каждого упакованного .z-файла, то обычно не стоит упаковывать файлы, размер которых менее трех блоков, если только распределение частоты символов не является очень неравномерным, что может иметь место в случае чертежа или картинки.

Обычно текстовые файлы уменьшаются до 60-75% от своего первоначального размера. Загрузочные модули, в которых используется более широкое множество символов и в которых распределение символов более равномерно, подвергаются меньшему сжатию; размер упакованной версии файла составляет примерно 90% от первоначального.

Команда pack возвращает значение, равное числу файлов, которые не удалось упаковать.

В следующих случаях упаковки файла не происходит:

Файл уже упакован. Имя файла состоит более чем из 12 символов. На файл есть ссылки. Файл является каталогом. Файл не может быть открыт. Упаковка не сэкономит дисковое пространство. Файл с именем файл.z уже существует. .z-файл не может быть создан. Ошибка ввода/вывода по время выполнения упаковки.

Простое имя файла не должно состоять более чем из 12 символов, чтобы можно было добавить расширение .z. Каталоги упаковывать нельзя.

СМ. ТАКЖЕ

, , .



PAGESIZE(1)FreeBSD Reference Manual


ИМЯ

pagesize - Показывает размер системной страницы.

СИНТАКСИС

pagesize

ОПИСАНИЕ

Pagesize печатает размер страницы памяти в байтах, возвращаемый getpagesize(3). Эту программу удобно использовать в скриптах, написанных на shell.

СМ. ТАКЖЕ

getpagesize(3)

ИСТОРИЯ

Команда pagesize появилась в 4.2BSD.



PARALLEL(HW)


НАЗВАНИЕ

parallel - параллельные интерфейсные устройства.

ОПИСАНИЕ

Существует несколько подобных параллельных устройств:

/dev/lp0 Главный параллельный адаптер. /dev/lp1 Адаптер платы монохромного дисплея. /dev/lp2 Альтернативный параллельный адаптер (на подходящих машинах).

Невозможно иметь на одной системе все три параллельных устройства. Компьютеры XT позволяют использовать только /dev/lp0. Некоторые компьютеры класса AT позволяют использовать два параллельных устройства, /dev/lp2 и любое из /dev/lp0 и /dev/lp1. Впрочем, на разных машинах доступные устройства бывают разными и могут быть, например, /dev/lp0 и любое из /dev/lp1 и /dev/lp2.

Если параллельное устройство не генерирует прерывания должным образом, тогда параллельный драйвер устанавливает "режим опроса". Если эти прерывания идут от устройства нормально, то драйвер переключается в исходный режим.

Когда параллельное устройство закрывается, драйвер этого устройства делает задержку на некоторое время. Эта задержка может воздействовать на функционирование принтера, но является необходимой для компенсации различных размеров буферов и скоростей печати. Например, следующая команда устанавливает время этой задержки порядка 1 секунды, выраженное в десятых долях секунды:

stty time 10< /dev/lp0

Если эту команду ввести с подсказки, то она сработает только в том случае, если порт открыт. Рекомендуется помещать подобную команду в интерфейсную программу, используемой параллельным устройством, для достижения того же эффекта:

stty time 10 0< &1

ПРИМЕЧАНИЯ

Параллельные адаптеры могут функционировать с дополнительных плат, но переключатели при этом должны быть установлены правильно. На некоторых совместимых компьютерах порты lp0 и lp1 переставлены.

Команда stty(1) обработки выдачи предусматривает выдачу данных на параллельное устройство. Опции stty, не имеющие воздействия на параллельное устройство, игнорируются, и сообщения об ошибках не выдаются.

ПРИМЕНЕНИЕ

Обычно вызывается через lp(1), но запись можно вести и напрямую.

ФАЙЛЫ

/dev/lp0 /dev/lp1 /dev/lp2

СМ. ТАКЖЕ

lp(1), lp(HW), lpadmin(8), lpinit(8), lpsched(8), serial(HW)



Passmgmt


НАЗВАНИЕ

passmgmt - работа с файлами паролей

СИНТАКСИС

passmgmt -a опции имя passmgmt -m опции имя passmgmt -d имя

ОПИСАНИЕ

Команда passmgmt корректирует содержимое файлов паролей. Она имеет дело с файлами /etc/passwd и /etc/shadow. Если файл shadow отсутствует, изменения записываются только в файл /etc/passwd.

Команда с параметром -a добавляет в файлы, содержащие пароли регистрации, запись о пользователе с указанным именем. При этом для нового пользователя не создается никакого каталога и вход в систему остается заблокированным (поле passwd содержит значение "LK") до тех пор, пока для установки пароля не будет исполнена команда .

Команда с параметром -m модифицирует в файлах, содержащих пароли регистрации, запись о пользователе с указанным именем. При этом могут корректироваться поля: имени в записи файла /etc/shadow и все поля (за исключением пароля) в записи файла /etc/passwd. Исправлены будут значения только тех полей, которые указаны в командной строке. Если файл /etc/shadow отсутствует, все исправления делаются в файле /etc/passwd.

Команда с параметром -d удаляет из файлов запись о пользователе с указанным именем. При этом никакие файлы из принадлежащих пользователю удалены не будут; их нужно удалять вручную.

Имя пользователя должно быть уникальным.

Опции команды:

-c комментарииКраткое описание входа в систему. Может содержать до 128 символов. -h начальный_каталогСобственный каталог пользователя с указанным именем. Содержит до 256 символов (по умолчанию, "/usr/имя"). -u uidКод идентификации пользователя с указанным именем. По умолчанию равен следующему свободному коду после 100. Если опция -o не указана, код идентификации должен быть уникальным. -oРазрешение использования неуникального кода идентификации пользователя. Используется только с опцией -u. -g gidГрупповой код идентификации пользователя с указанным именем. По умолчанию равен 1. -s shellОболочка регистрации пользователя с указанным именем. Указывается полное имя программы, исполняемой при регистрации пользователя в системе. Максимальная длина имени - 256 символов. Умолчание интерпретируется как /bin/sh. -l lognameЗамена имени пользователя на logname (только для опции -m).

<


/p>

Общий размер каждой регистрационной записи, как существующей, так и новой, не должен превышать 511 байт.

ФАЙЛЫ

/etc/passwd /etc/shadow /etc/opasswd /etc/oshadow

СМ. ТАКЖЕ

ДИАГНОСТИКА

Команда passmgmt возвращает одно из следующих значений:
0УСПЕХ. 1В разрешении отказано. 2Неверный синтаксис команды. Отображается формат команды passmgmt. 3Неверное использование аргумента с опцией. 4Код идентификации уже задействован. 5Несогласованность паролей в файлах (иначе говоря, имя присутствует в файле /etc/passwd и отсутствует в файле /etc/shadow, и наоборот). 6Непредвиденный отказ. Файлы не изменились. 7Непредвиденный отказ. Файлы отсутствуют. 8Файлы заняты. Повторите попытку позже. 9Имя не существует (если указаны опция -m или -d), уже существует (опция -a), logname уже существует (опции -m -l). ЗАМЕЧАНИЕ

Символы "кавычки" и <CR> интерпретируются как разделители полей.

PASSWD(1)


НАЗВАНИЕ

passwd,yppasswd - смена входного пароля

СИНТАКСИС

passwd [входное_имя]

ОПИСАНИЕ

Команда passwd меняет (или устанавливает) пароль, связанный с входным_именем пользователя.

Обычный пользователь может менять только пароль, связанный с его собственным входным_именем.

Команда запрашивает у обычных пользователей старый пароль (если он был), а затем дважды запрашивает новый. После первого запроса проверяется, достаточен ли "возраст" старого пароля. Возраст - это промежуток времени (обычно несколько дней), который должен пройти между сменами пароля. Если возраст недостаточен, новый пароль отвергается и passwd завершается; см. .

Если возраст достаточен, делается проверка на соответствие нового пароля техническим требованиям. Когда новый пароль вводится во второй раз, две копии нового пароля сравниваются. Если они не совпали, цикл запроса нового пароля повторяется, но не более двух раз.

Технические требования к паролям:

Каждый пароль должен содержать не менее 6 симво лов. Значащими являются только первые 8. Каждый пароль должен содержать как минимум две буквы (большие или малые) и хотя бы одну цифру или знак. Каждый пароль должен отличаться от входного_имени, прочитанного слева направо или задом наперед, и от его циклических сдвигов. При сравнении не делается различий между большими и малыми буквами. Новый пароль должен отличаться от старого хотя бы тремя символами. При сравнении не делается разли чий между большими и малыми буквами.

Пользователь, у которого действующий идентификатор есть ноль, называется суперпользователем [см. и ]. Суперпользователь имеет право изменять любые пароли, поэтому у него старый пароль не запрашивается. Суперпользователь не связан ограничениями на возраст пароля и соответствие техническим требованиям. Суперпользователь может создать пустой пароль, нажимая возврат каретки в ответ на запрос нового пароля.

ФАЙЛЫ

/etc/passwd

СМ. ТАКЖЕ

, , .

, в Справочнике программиста.

СЮРПРИЗЫ

Пустой пароль не равнозначен отсутствию пароля и запрашивается каждый раз при входе.



PASSWD(5)XENIX System V (1 янвapя 1989)


НАЗВАНИЕ

passwd - фaйл пapoлeй

ОПИСАНИЕ

Фaйл passwd cocтoит из cтpoк, кaждaя из кoтopыx нeceт инфopмaцию o кoнкpeтнoм пoльзoвaтeлe и coдepжит cлeдyющиe пoля:

вxoднoe имя; зaшифpoвaнный пapoль; чиcлoвoй идeнтификaтop пoльзoввaтeля; чиcлoвoй идeнтификaтop гpyппы; кoммeнтapии; инициaлизиpyeмый paбoчий кaтaлoг; пpoгpaммa, иcпoльзyeмaя для oбpaбoтки кoмaнднoгo языкa (типa shell).

Фopмaт пoля кoммeнтapиeв пpивeдeн в oпиcaнии . Ecли пoлe пapoля пycтo, знaчит пapoля нe cyщecтвyeт. Ecли пycтo пoлe shell, иcпoльзyeтcя .

Фaйл coдepжитcя в кaтaлoгe /etc. T.к. пapoль зaшифpoвaн, фaйл дocтyпeн в ocнoвнoм для чтeния.

Пapoль cocтoит из 13 cимвoлoв (любыx из: ., /, 0-9, A-Z, az). Cpoк дeйcтвия (вoзpacт) пapoля ycтaнaвливaeтcя для oтдeльнoгo пoльзoвaтeля, ecли eгo зaшифpoвaнный пapoль cлeдyeт зa зaпятoй и нeнyлeвoй cтpoкoй cимвoлoв c кoдaми вышe aлфaвитныx. (Taкaя cтpoкa дoлжнa ввoдитьcя пpивилeгиpoвaнным пoльзoвaтeлeм). Пepвый cимвoл cтpoки вoзpacтa - мaкcимaльнoe чиcлo нeдeль, кoгдa пapoль дeйcтвитeлeн. Пocлe иcтeчeния cpoкa дeйcтвия, нeoбxoдимo ycтaнoвить нoвый пapoль. Bтopoй cимвoл cтpoки вoзpacтa минимaльнoe чиcлo нeдeль, кoтopoe дoлжнo пpoйти пpeждe, чeм пapoль мoжeт быть измeнeн. Ocтaльныe cимвoлы oпpeдeляют тy нeдeлю (cчитaя c 1970г.), кoгдa пapoль был измeнeн пocлeдний paз. Пepвый и втopoй cимвoлы дoлжны имeть чиcлoвoe знaчeниe в диaпaзoнe 0-63 (тoчкa `.' эквивaлeнтнa 0 и z эквивaлeнтнo 63). Ecли чиcлoвoe знaчeниe oбoиx cимвoлoв - 0, пoльзoвaтeль мoжeт измeнить cвoй пapoль в любoй мoмeнт. Ecли втopoe знaчeниe бoльшe пepвoгo, тoлькo пpивилeгиpoвaнный пoльзoвaтeль мoжeт измeнять пapoль.

ФАЙЛЫ

/etc/passwd

СМ. ТАКЖЕ

, , a64l(2), getpwent(2),group(5),pwadmin(8)



PASTE(1)


НАЗВАНИЕ

paste - слияние строк одного или нескольких файлов

СИНТАКСИС

paste файл1 файл2 ... paste -dсписок файл1 файл2 ... paste -s [-dсписок] файл1 ...

ОПИСАНИЕ

В первых двух своих формах команда paste конкатенирует соответственные строки указанных входных файлов файл1, файл2 и т.д. Каждый файл рассматривается как отдельный столбец или несколько столбцов некоторой таблицы; команда paste склеивает их по горизонтали (параллельное слияние). Если угодно, команда paste двойственна команде , которая осуществляет вертикальную конкатенацию файлов, размещая один файл вслед за другим. В последней из приведенных синтаксических форм команда paste принимает на себя функции более старой команды с таким же именем, соединяя последовательные строки входного файла (последовательное слияние). Во всех случаях строки склеиваются посредством символа табуляции или, как возможный вариант, посредством символов из списка. Команда paste помещает результирующую строку на стандартный вывод, поэтому она (команда) может служить началом конвейера или фильтром, если вместо имени файла указать -.

Опции имеют следующий смысл:

-dсписок

Если эта опция не указана, символы перевода строки во всех файлах, кроме последнего, (либо, в случае опции -s, в последней строке файла) заменяются символами табуляции. Непосредственно следующие за -d символы используются при конкатенации строк вместо символов табуляции. Список этих символов рассматривается как кольцевой, то есть будучи исчерпан, он используется повторно. При параллельном слиянии (то есть в отсутствие опции -s) строки из последнего файла всегда завершаются символом перевода строки, а не символами из списка. Список может содержать следующие управляющие символы: \n (перевод строки), \t (символ табуляции), \\ (обратная наклонная черта), а также \0 (пустая цепочка, а не нулевой символ). Может оказаться, что входящим в список символам приписан специальный смысл в языке shell - в этом случае потребуются кавычки (например, обратная наклонная черта должна быть задана как -d"\\\\"). -s Осуществлять слияние последовательных строк файла1, затем файла2 и т.д., а не единичных строк одновременно из всех входных файлов. Если опция -dсписок не задана, то при конкатенации используются символы табуляции. Вне зависимости от наличия или отсутствия списка каждый файл будет оканчиваться символом перевода строки. - Может использоваться в роли имени файла. В этом случае строки будут считываться со стандартного ввода (приглашение не выдается).

ПРИМЕРЫ

Выдача каталога в один столбец:

ls | paste

Выдача каталога в четыре столбца:

ls | paste - - -

Попарное об единение строк файла f1:

paste -s -d"\t\n" f1

СМ. ТАКЖЕ

, , .

ДИАГНОСТИКА

line too long

Длина результирующей строки превышает 511 символов.

too many files

Число входных файлов не должно превышать 12. При наличии опции -s это ограничение отсутствует.

СЮРПРИЗЫ

В режиме опции -s с несколькими файлами команда работает неверно.



PAUSE(2)


НАЗВАНИЕ

pause - приостановка процесса до получения сигнала

СИНТАКСИС

pause ( )

ОПИСАНИЕ

Системный вызов pause приостанавливает вызывающий процесс до получения им сигнала. Сигнал должен отличаться от тех сигналов, которые игнорируются вызывающим процессом.

Если сигнал привел к завершению выполнения вызывающего процесса, то возврата из pause не будет.

Если сигнал перехватывается вызывающим процессом, и управление возвращается от функции обработки сигнала [см. ], то вызывающий процесс возобновляет выполнение с места приостановки. Значение, возвращаемое в этом случае системным вызовом pause, равно -1, а переменная errno принимает значение, равное EINTR [см. ].

СМ. ТАКЖЕ

, , , , .



PCAT(1)


НАЗВАНИЕ

pcat - распаковка файлов

СИНТАКСИС

pcat файл ...

ОПИСАНИЕ

Команда pcat выполняет над упакованными файлами те же действия, что и команда над обычными файлами, за исключением того, что команда pcat не может быть использована в качестве фильтра. Исходные файлы распаковываются и выдаются на стандартный вывод. Так, чтобы распечать упакованный файл с именем f1.z, используйте следующую команду:

pcat f1.z

или просто:

pcat f1

Чтобы создать неупакованную копию какого-либо упакованного файла с именем f1.z без разрушения оригинала, используйте команду вида:

pcat f1 > f2

Команда pcat возвращает значение, равное количеству файлов, которые не удалось распаковать. Неудача может об ясняться следующими причинами:

Имя файла (без .z) состоит более чем из 12 символов. Файл не открывается. Файл не является результатом выполнения команды упаковки .

СМ. ТАКЖЕ

, , .



Pcnfsd


НАЗВАНИЕ

pcnfsd - процесс опознавания связи pc-nfs и буферизации вывода на печать

СИНТАКСИС

/etc/pcnfsd [-d] [-s spooldir]

ОПИСАНИЕ

Процесс pcnfsd обрабатывает запросы, связанные с опознаванием связи и буферизацией вывода и поступающие от клиентов MS-DOS, которые работают в сети Sun Microsystem's PC-NFS. Как сами запросы, так и ответы на них пересылаются с помощью пакета RPC/XDR. По получении запроса на опознавание связи pcnfsd обращается к файлу паролей сервера и проверяет совпадение пароля, посланного клиентом MS-DOS, с паролем локальной машины. Клиенту посылается сообщение о приеме или отказе. В случае успеха возвращается также пара значений uid/gid (пользовательский код/групповой код). Если указанный в запросе регистрационный счет не существует, связь не опознается.

Буферизация вывода состоит из двух этапов: инициализация буферного пространства и запуск вывода. Когда сервер получает запрос на инициализацию, имя каталога буферизации составляется из spooldir и имени клиентской машины. Этот путь сообщается клиенту. Клиент монтирует каталог. Когда буферный файл (spool file) будет готов для вывода, серверу будет послан запрос на запуск вывода. Сервер перешлет файл подсистеме буферизации вывода.

Опции:

-dВключить режим отладки. На консольный терминал возвращается информация о состоянии. -s spooldirЗначение spooldir используется в качестве базового каталога буферизации вместо /usr/spool/lp/pcnfsd.

СМ. ТАКЖЕ

, , getpwent(1)



PDP11(1)


НАЗВАНИЕ

pdp11

СИНТАКСИС

pdp11

ОПИСАНИЕ

Код завершения команды pdp11 равен 0 (истина), если Вы работаете на PDP-11/45 или PDP-11/70; в противном случае код завершения отличен от нуля.

СМ. ТАКЖЕ

.



PERROR(3C)


НАЗВАНИЕ

perror, errno, sys_errlist, sys_nerr - системные сообщения об ошибках

СИНТАКСИС

void perror (s) char *s;

extern int errno;

extern char *sys_errlist [];

extern int sys_nerr;

ОПИСАНИЕ

Функция perror формирует в стандартном протоколе сообщение, которое описывает последнюю ошибку, случившуюся во время выполнения системного вызова или библиотечной функции. Сначала выдается цепочка-аргумент s, затем двоеточие и пробел, затем собственно сообщение и символ перевода строки (однако, если цепочка s пуста, двоеточие не выдается). Чаще всего аргумент s включает имя программы, в которой возникла ошибка. Код ошибки извлекается из внешней переменной errno, которой он присваивается при возникновении ошибки, и которая не изменяется вызовами, не приведшими к ошибке.

Чтобы упростить нестандартное форматирование сообщений, предоставляется массив текстов сообщений sys_errlist; для получения текста сообщения без символа перевода строки можно использовать errno в качестве индекса в этом массиве. Sys_nerr - число сообщений в массиве; это значение следует проверять, поскольку новые коды ошибок могут быть добавлены в систему без соответствующей коррекции сообщений.

СМ. ТАКЖЕ

.



PFBTOPS(1)


ИМЯ

pfbtops - переводит шрифт PostScript в .pfb формат (ASCII)

СИНТАКСИС

pfbtops [ pfb_file ]

ОПИСАНИЕ

pfbtops переводит шрифт PostScript в .pfb формат ASCII. Если pfb_file опущен, то файл pfb будет читаться со стандартного ввода. ASCII формат шрифта PostScript будет писаться на стандартный вывод. PostScript шрифты для MS-DOS нормально переводятся в .pfb формат.

Результирующий формат ASCII PostScript шрифта может быть использован с groff.

СМ. ТАКЖЕ

grops(1)



PG(1)


НАЗВАНИЕ

pg - фильтр для просмотра файлов на экране

СИНТАКСИС

pg [-число] [-p пригл] [-c] [-e] [-f] [-n] [-s] [+номер_строки] [+/шаблон/] [файл ...]

ОПИСАНИЕ

Команда pg позволяет просматривать файлы страницами, равными по размеру экрану. Если имена файлов не заданы или задан символ -, то просматривается стандартный ввод. После вывода очередной страницы следует приглашение. Если пользователь нажмет клавишу возврата каретки, то будет выведена очередная страница; остальные возможности перечислены ниже.

Эта команда отличается от других команд страничного просмотра тем, что позволяет возвращаться по тексту назад. Как это делается - описано ниже.

Для определения характеристик терминала команда pg просматривает базу данных для типа терминала, заданного переменной окружения TERM. Если переменная TERM не определена, предполагается, что тип терминала - dumb.

Опции команды:

-число

Целое число, задающее размер (в строках) страницы, которое следует использовать вместо значения по умолчанию. (На терминале, содержащем 24 строки, подразумеваемый размер страницы равен 23.) -p пригл

Изменение текста приглашения на пригл. Если строка приглашения содержит %d, то при выводе первая пара символов %d будет заменена номером текущей страницы. Строка приглашения по умолчанию состоит из единственного символа :. -c Возврат курсора в начало и очистка экрана перед выводом каждой страницы. Эта опция игнорируется, если для данного типа терминала в базе данных не определена операция очистки экрана clear_screen. -e Исключение пауз при переходе к следующему файлу. -f Обычно команда pg расщепляет строку, если она не помещается на экране, однако расщепление некоторых последовательностей символов отображаемого текста (например, управляющих последовательностей, служащих для подчеркивания) дает нежелательный эффект. Опция -f подавляет расщепление строк. -n Обычно ввод команды с клавиатуры завершается нажатием клавиши перевода строки. Эта опция вызывает автоматический ввод команды, как только будет введена командная буква. -s Отображение всех сообщений и приглашений особым образом (обычно в негативе). +номер_строки

Указание номера_строки, с которого следует начинать просмотр. +/шаблон/

Указание шаблона для поиска строки, с которой начинается просмотр. <


/p>

Команды, допустимые когда pg делает паузу между страницами, можно разделить на три группы: команды продолжения просмотра, поиска и изменения режима просмотра.

Перед командами продолжения просмотра может задаваться адрес - число, возможно со знаком, показывающее, с какого места файла продолжать просмотр. Этот адрес, в зависимости от команды, интерпретируется в единицах либо страниц, либо строк. Адрес со знаком задает точку относительно текущей страницы или строки, а адрес без знака - относительно начала файла. Для каждой команды существует адрес по умолчанию, который используется при отсутствии явного задания.

Команды продолжения просмотра и значения их аргументов по умолчанию:

(+1)перевод_строки

Вывод на экран очередной страницы. Адрес задается в страницах.

(+1)l Если задан относительный адрес, моделируется дви жение по файлу на заданное количество строк. Если задан абсолютный адрес, экран заполняется начиная с указанной строки.

(+1)d или CTRL+D

Перемещение на пол-экрана вперед или назад.

Следующие команды адреса не требуют.

. или CTRL+L

Повторный вывод текущей страницы текста.

$ Вывод последней полной страницы файла. Необходимо соблюдать осторожность, если ввод выполняется через канал.

Перейдем к командам, предназначенным для поиска по шаблонам. Можно использовать регулярные выражения, описанные в команде . Они должны обязательно заканчиваться символом перевода строки, даже если задана опция -n.

i/шаблон/

Поиск вперед до i-го (по умолчанию i = 1) появления шаблона. Поиск начинается сразу после текущей страницы и продолжается до конца файла, без перехода в начало.

i^шаблон^ i?шаблон?

Поиск назад до i-го (по умолчанию i = 1) появления шаблона. Поиск начинается сразу перед текущей страницей и продолжается до начала файла, без перехода в конец. Обозначение ^ предусмотрено для терминалов Adds 100, которые некорректно манипулируют символом ?.

Обычно найденная строка оказывается вверху экрана. Добавление символов m или b к команде поиска приведет к тому, что найденная строка окажется в центре или внизу экрана. Для восстановления исходной ситуации можно использовать суффикс t.

Пользователь команды pg может модифицировать режим просмотра следующими командами:



in Начать работу с i- м следующим файлом командной строки; i - число без знака, по умолчанию 1.

ip Начать работу с i-м предыдущим файлом командной строки; i - число без знака, по умолчанию 1.

iw Продвинуться по файлу на размер окна. Если i задано, то размер окна устанавливается равным i.

s файл Сохранить входную информацию в заданном файле. Сохраняется только текущий просматриваемый файл. Пробел между s и файлом необязателен. Эта команда должна заканчиваться символом перевода строки, даже если задана опция -n.

h Вывести справку о доступных командах.

q или Q Закончить просмотр файлов.

!команда

Команда передается интерпретатору, имя которого представляет собой значение переменной окружения SHELL. Если она недоступна, то выбирается интерпретатор по умолчанию. Эта команда должна всегда заканчиваться символом перевода строки, даже если задана опция -n.

В процессе вывода на терминал пользователь может в любой момент нажать клавиши завершения или прерывания [см. ]. В результате этого вывод будет прекращен и появится приглашение. После этого пользователь может ввести одну из вышеперечисленных команд обычным образом. К сожалению, при этом теряется часть текста, т.к. символы, находящиеся в выходной очереди к терминалу, при появлении сигнала завершения пропадают. Если стандартный вывод назначен не на терминал, то команда pg действует точно так же, как , за исключением того, что заголовок выводится перед каждым файлом (если их несколько).

ПРИМЕР
Примером использования команды pg может служить чтение новостей:

news | pg -p "(Page %d):"

ФАЙЛЫ

/usr/lib/terminfo/* База данных с информацией о терминалах. /tmp/pg* Временный файл при вводе из ка- нала.

СМ. ТАКЖЕ

, .

в Справочнике программиста.

СЮРПРИЗЫ

Если позиции табуляции установлены не через восемь, возможны нежелательные эффекты.

При использовании команды pg в качестве фильтра в сочетании с другой командой, которая изменяет опции ввода/ вывода терминала, терминал может быть не восстановлен в исходное состояние.

При ожидании ввода с терминала команда pg воспринимает символы завершения и прерывания как сигнал к завершению. Однако, в момент активной работы эти сигналы интерпретируются как приказ перейти в режим приглашения. Ими следует пользоваться с осторожностью, если ввод осуществляется из канала, так как прерывание, скорее всего, приведет к завершению остальных команд конвейера.









PIPE(2)


НАЗВАНИЕ

pipe - создание межпроцессного канала

СИНТАКСИС

int pipe (fildes) int fildes [2];

ОПИСАНИЕ

Системный вызов pipe создает механизм ввода/вывода, называемый каналом, и возвращает два дескриптора файла fildes[0] и fildes[1]. Дескриптор fildes[0] открыт на чтение, дескриптор fildes[1] - на запись.

Канал буферизует до 5120 байт данных; запись в него большего количества информации без считывания приведет к блокированию пишущего процесса. Посредством дескриптора fildes[0] информация читается в том же порядке, в каком она записывалась с помощью дескриптора fildes[1].

Системный вызов pipe завершается неудачей, если выполнено хотя бы одно из следующих условий:

[EMFILE] Превышается максимально допустимое количество файлов, открытых одновременно в одном процессе. [ENFILE] Переполнена системная таблица файлов.

СМ. ТАКЖЕ

, . в Справочнике пользователя.

ДИАГНОСТИКА

При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.



PLOCK(2)


НАЗВАНИЕ

plock - удержание процесса в памяти

СИНТАКСИС

#include <sys/lock.h>

int plock (op) int op;

ОПИСАНИЕ

Системный вызов plock позволяет вызвавшему его процессу удержать в памяти сегмент команд, данных, или оба сегмента. После этого указанные сегменты не вытесняются из памяти при подкачке страниц, принадлежащих другим процессам. Посредством plock можно также отменить удержание сегментов в памяти. У процесса, вызывающего plock, действующий идентификатор пользователя должен быть идентификатором суперпользователя. Аргумент op задает требуемые действия:

PROCLOCK Удерживать в памяти сегменты команд и данных.

TXTLOCK Удерживать в памяти сегмент команд.

DATLOCK Удерживать в памяти сегмент данных.

UNLOCK Отменить удержание.

Указанное действие не выполняется и системный вызов plock завершается неудачей, если выполнено хотя бы одно из следующих условий:

[EPERM] Соответствующий процессу действующий идентификатор пользователя не является идентификатором суперпользователя. [EINVAL] Аргумент op равен PROCLOCK, однако по крайней мере один сегмент процесса уже удерживается в памяти. [EINVAL] Аргумент op равен TXTLOCK, однако сегмент команд (или весь процесс) уже удерживается в памяти. [EINVAL] Аргумент op равен DATLOCK, однако сегмент данных (или весь процесс) уже удерживается в памяти. [EINVAL] Аргумент op равен UNLOCK, но ни один сегмент процесса не удерживается в памяти. [EAGAIN] Памяти недостаточно.

СМ. ТАКЖЕ

, , .

ДИАГНОСТИКА

При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.



PLOT(3X)


НАЗВАНИЕ

plot - графический интерфейс

СИНТАКСИС

openpl ( )

erase ( )

label (s) char *s;

line (x1, y1, x2, y2) int x1, y1, x2, y2;

circle (x, y, r) int x, y, r;

arc (x, y, x0, y0, x1, y1) int x, y, x0, y0, x1, y1;

move (x, y) int x, y;

cont (x, y) int x, y;

point (x, y) int x, y;

linemod (s) char *s;

space (x0, y0, x1, y1) int x0, y0, x1, y1;

closepl ( )

ОПИСАНИЕ

Описываемые функции генерируют графический вывод в относительно независимой от устройства форме. В первую очередь, с помощью функции space, нужно задать область рисования [см. ]. Затем следует вызвать функцию openpl, чтобы открыть устройство на запись. Функция closepl выталкивает буфера и закрывает устройство.

Функция circle рисует окружность радиуса r с центром в точке (x, y).

Функция arc рисует дугу окружности с центром в точке (x, y), проходящую от точки (x0, y0) до (x1, y1).

Цепочки символов - аргументы функций label и linemod должны ограничиваться нулевыми байтами и не должны содержать переводов строк.

Описание других функций см. в .

Перечисленные ниже библиотечные файлы предоставляют несколько разновидностей рисующих функций.

ФАЙЛЫ

LIBDIR/libplot.a Вывод для фильтров группы . LIBDIR/lib300.pa Вывод для DASI 300. LIBDIR/lib300.a Вывод для DASI 300s. LIBDIR/lib450.a Вывод для DASI 450. LIBDIR/lib4014.a Вывод для Tektronix 4014.

Обычно каталог LIBDIR - это /usr/lib.

СМ. ТАКЖЕ

. , , в Справочнике пользователя.

ПРЕДОСТЕРЕЖЕНИЯ

Описанные функции находятся в библиотеке plot и подключаются при использовании опции -lplot команд и .

Для выполнения рисующей программы необходимо использовать конструкцию вида

a.out | tplot

Описанные функции используют стандартный пакет ввода/ вывода, что приводит к неожиданному увеличению размера программ, не использующих стандартный ввод/вывод.



PLOT(4)


НАЗВАНИЕ

plot - графический интерфейс

ОПИСАНИЕ

Файлы данного формата порождаются функциями из и интерпретируются графическими фильтрами, описанными в . Графический файл - это последовательность инструкций рисования. Каждая инструкция начинается с латинской буквы, за которой обычно следуют байты двоичной информации. Инструкции выполняются последовательно. Точка задается четырьмя байтами, содержащими значения координат x и y в виде коротких целых чисел. Последняя точка в инструкциях l, m, n и p становится текущей точкой для следующей инструкции.

Каждое из приведенных ниже описаний начинается с имени соответствующей функции из .

mПеремещение. Следующие четыре байта задают новую текущую точку. nПродолжение. Нарисовать отрезок из текущей точки в точку, заданную следующими четырьмя байтами [смотри ]. pТочка. Нарисовать точку, заданную следующими четырьмя байтами. lОтрезок. Нарисовать отрезок от точки, заданной первыми четырьмя байтами до точки, заданной вторыми четырьмя байтами. tМетка. Изобразить следующую цепочку символов, начиная с текущей точки. Цепочка завершается символом перевода строки. eОчистка. Начать другой кадр вывода. fТип линии. Рассматривать следующую цепочку символов (до перевода строки) как тип линии при рисовании отрезков. Возможные типы линий: dotted (точечная), solid (сплошная), longdashed (длинно-пунктирная), shortdashed (пунктирная) и dotdashed (штрихпунктирная). Действует только для опций -T4014 и -Tver команды (терминал Tektronix 4014 и графопостроитель Versatec). sОбласть. Следующие 4 байта задают левый нижний угол области рисования, следующие 4 байта - правый верхний угол. Графический вывод будет промасштабирован для достижения максимального соответствия параметрам устройства.

Ниже описаны параметры установки области для устройств, поддерживаемых фильтрами из , обеспечивающие заполнение всей области рисования. Верхний предел лежит непосредственно за областью рисования. В любом случае область рисования считается квадратом; точки, расположенные вне квадрата, могут быть изображены на устройствах с не квадратным экраном/листом:

DASI 300область (0, 0, 4096, 4096); DASI 300sобласть (0, 0, 4096, 4096); DASI 450область (0, 0, 4096, 4096); Tektronix 4014область (0, 0, 3120, 3120); Versatecобласть (0, 0, 2048, 2048);

СМ. ТАКЖЕ

, , .

, в Справочнике пользователя.

ПРЕДОСТЕРЕЖЕНИЯ

Две библиотеки, и , используют имена erase ( ) и move ( ). В версии библиотеки curses они являются макросами. Если нужно работать с обеими библиотеками, поместите в отдельный файл программы, использующие , и/или примените к ним директивы #undef move( ) и #undef erase( ).



PNCH(4)


НАЗВАНИЕ

pnch - формат файла для образов перфокарт

ОПИСАНИЕ

Формат PNCH является удобным представлением для файлов, содержащих образы перфокарт в произвольной кодировке.

Файл в формате PNCH представляет собой просто последовательность записей-перфокарт. Запись-перфокарта состоит из одного управляющего байта, за которым следует произвольное число байт данных. Управляющий байт определяет число байт данных; оно должно лежать в диапазоне 0-80. Байты данных представляют собой 8-битные коды символов, составляющих образ перфокарты. Если байтов данных меньше, чем 80, считается, что остаток перфокарты содержит только пробелы.



POLL(2)


НАЗВАНИЕ

poll - мультиплексирование псевдоустройств по вводу/выводу

СИНТАКСИС

#include <stropts.h> #include <poll.h>

int poll (fds, nfds, timeout) struct pollfd fds [ ]; unsigned long nfds; int timeout;

ОПИСАНИЕ

Системный вызов poll предоставляет пользователю механизм одновременного управления вводом/выводом (мультиплексирования) для набора дескрипторов открытых потоков [см. ]. Poll идентифицирует потоки, с которыми пользователь может обменяться сообщениями, а также потоки, в которых произошли определенные события. Сообщения можно принимать с помощью системных вызовов или , а посылать посредством или . Некоторые команды из группы , такие как I_RECVFD и I_SENDFD [см. ], также могут быть использованы для приема и посылки сообщений.

Аргумент fds задает дескрипторы файлов, которые должны анализироваться, и интересующие пользователя события для каждого из дескрипторов. Fds есть указатель на массив из стольких элементов, сколько дескрипторов файлов интересует пользователя. Элементами массива являются структуры типа pollfd, содержащие следующие элементы:

int fd; /* Дескриптор файла */ short events; /* Интересующие события */ short revents; /* Происшедшие события */

Компонент fd задает дескриптор открытого файла, а events и revents являются масками, построенными с помощью побитной операции ИЛИ из следующих флагов:

POLLIN В очереди чтения истока есть неприоритетное сообщение или сообщение, передающее дескриптор файла (см. I_RECVFD). Этот флаг устанавливается и в том случае, если сообщение имеет нулевую длину. В компоненте revents этот флаг не может присутствовать одновременно с флагом POLLPRI. POLLPRI В очереди чтения истока есть приоритетное сообщение. Этот флаг устанавливается и в том случае, если сообщение имеет нулевую длину. В компоненте revents этот флаг не может присутствовать одновременно с флагом POLLIN. POLLOUT Верхняя очередь записи потока неполна [см. ]. Приоритетные управляющие сообщения могут быть посланы в любое время (см. ). POLLERR В исток потока поступило сообщение об ошибке. Флаг допустим только в revents; в events он не используется. POLLHUP В потоке произошло освобождение линии. Этот флаг не может присутствовать одновременно с флагом POLLOUT: поток не может быть доступным на запись, если произошло освобождение линии. Этот флаг, однако, может присутствовать одновременно с флагами POLLIN и POLLPRI. Флаг POLLHUP допустим только в revents; в events он не используется. POLLNVAL Дескриптор fd не соответствует открытому потоку. Флаг допустим только в revents; в events он не используется.


Для каждого элемента массива, на который указывает аргумент fds, poll проверяет дескриптор файла fd на наличие событий, указанных в events. Количество дескрипторов файлов задается аргументом nfds. Если nfds превосходит NOFILES - системное ограничение на количество одновременно открытых файлов [см. ] - poll завершается неудачей.

Если значение fd меньше нуля, events игнорируется, а revents для этого элемента устанавливается равным 0.

Результаты работы системного вызова poll помещаются в поле revents структуры типа pollfd. Единичные биты в revents показывают, какие из событий, интересующих пользователя, произошли. Если ни одно из событий не произошло, poll возвращает в revents нулевые значения бит. Флаги POLLHUP, POLLERR и POLLNVAL устанавливаются в revents, если выполнены соответствующие условия; это происходит даже тогда, когда перечисленные флаги не установлены в поле events.

Если ни одно из ожидаемых событий ни для одного из указанных дескрипторов файлов не имеет места, poll будет ждать как минимум timeout миллисекунд того, чтобы по крайней мере одно событие хотя бы для одного дескриптора произошло. На компьютерах, где время не может быть измерено с точностью до миллисекунд, timeout округляется до ближайшего доступного системе значения. Если значение timeout равно 0, poll возвращает управление немедленно. Если значение timeout равно -1, poll ждет, пока не произойдет одно из событий, или системный вызов не будет прерван. Флаг O_NDELAY не влияет на poll.

Системный вызов poll завершается неудачей, если выполнено хотя бы одно из следующих условий:

[EAGAIN] Разместить внутренние структуры данных не удалось, но запрос следует повторить. [EFAULT] Какой-либо аргумент указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [EINVAL] Аргумент nfds меньше 0 или больше NOFILES.

СМ. ТАКЖЕ

, , , , . в Справочнике администратора.

ДИАГНОСТИКА

При успешном завершении возвращается неотрицательное целое число. Положительный результат равен количеству дескрипторов, для которых произошли события (то есть компонент revents не равен 0). Нулевой результат означает, что истек таймаут, а никаких событий не произошло. В случае ошибки возвращается -1, а переменной errno присваивается код ошибки.


POPEN(3S)


НАЗВАНИЕ

popen, pclose - создание и ликвидация канала между программой и командой

СИНТАКСИС

#include <stdio.h>

FILE *popen (command, type) char *command, *type;

int pclose (stream) FILE *stream;

ОПИСАНИЕ

Аргументами функции popen являются указатели на цепочки символов с завершающим нулевым байтом. Первая из них, command, содержит команду shell'а, а вторая задает режим ввода/вывода: "r" для чтения и "w" для записи. Функция popen создает канал между вызывающей программой и указанной командой. Возвращаемое значение - это указатель на поток. Если режим равен "w", то можно писать на стандартный ввод команды, выводя в созданный поток. Если режим равен "r", то можно читать со стандартного вывода команды, вводя из созданного потока.

Поток, открытый с помощью popen, должен быть закрыт с помощью функции pclose, которая ожидает завершения запущенного процесса выполнения команды и выдает код его завершения.

Поскольку открытые файлы разделяются, команда с режимом "r" может быть использована как входной фильтр, а команда с режимом "w" - как выходной фильтр.

ПРИМЕР

Типичным является следующий пример:

char *cmd = "ls *.c"; FILE *ptr; if ((ptr = popen (cmd, "r")) != NULL) while (fgets (buf, n, ptr)) != NULL) (void) printf ("%s", buf);

На стандартный вывод будут записаны имена всех файлов с расширением .c, принадлежащих текущему каталогу.

СМ. ТАКЖЕ

, , , , , .

ДИАГНОСТИКА

Функция popen возвращает пустой указатель (NULL), если файл или процесс не могут быть созданы.

Функция pclose возвращает -1, если поток не ассоциирован с командой посредством popen.

ПРЕДОСТЕРЕЖЕНИЯ

Если требуется, чтобы вызывающий процесс и процесс, порождаемый по popen, одновременно читали или писали в общие файлы, то нельзя при этом пользоваться буферизованным вводом/выводом, так как данные в буферах перемешаются непредсказуемо. Проблемы с выходным фильтром могут быть решены путем аккуратного выталкивания буферов с помощью функции fflush [см. ].



Portmap


НАЗВАНИЕ

portmap - точка подключения DARPA к преобразователю программных номеров RPC

СИНТАКСИС

/etc/portmap

ОПИСАНИЕ

Portmap является сервером, который преобразует программные номера RPC в номера портов протокола DARPA. Он обслуживает все обращения к RPC.

Сервер RPC при запуске сообщает процессу portmap номер прослушиваемого порта, а также номера тех программ, которые он готовится обслужить. Если клиенту нужно обратиться к RPC с конкретным номером программы, он сначала должен войти в контакт с процессом portmap на серверной машине и определить номер порта связи с пакетами RPC.

СМ. ТАКЖЕ

ЗАМЕЧАНИЯ

Если portmap дает отказ, все серверы должны быть перезапущены.



PR(1)


НАЗВАНИЕ

pr - печать файлов

СИНТАКСИС

pr [+стр] [-кол] [-a] [-m] [-d] [-e[символ][число]] [-i[символ][число]] [-n[символ][число]] [-wширина] [-oотс] [-lдлина] [-h текст] [-p] [-f [-r] [-t] [-sсимвол] [файл ...]

ОПИСАНИЕ

Команда pr форматирует и выдает файлы на стандартный вывод. Если имена файлов не заданы или задан символ -, информация берется со стандартного ввода.

По умолчанию выдача разбивается на страницы, каждая из которых содержит в заголовке свой номер, дату, время и имя файла. Длина страницы 66 строк, включая 10 строк заголовка и хвостовика. Заголовок состоит из двух пустых строк, одной строки текста (можно изменить опцией -h) и еще двух пустых строк; хвостовик состоит из пяти пустых строк. При выводе в одну колонку ширина строки не может быть задана и считается неограниченной. При выводе в несколько колонок ширину строки можно задать, а по умолчанию она равна 72. Диагностические сообщения (при неверных опциях) выдаются в конце стандартного вывода, связанного с терминалом, а не вклиниваются в выводимый текст.

По умолчанию колонки имеют одинаковую ширину и разделены по крайней мере одним пробелом; строки, не помещающиеся на странице, обрезаются. Если задана опция -s, строки не обрезаются, а колонки отделяются друг от друга символом-разделителем.

Для вывода в несколько колонок следует использовать опции -кол или -m. Опцию -a можно использовать только в сочетании с опцией -кол, но не -m.

Если стандартный вывод назначен на терминал, до окончания работы pr он закрывается от приема сообщений, посланных командой .

Перечисленные ниже опции могут быть заданы по одной или вместе в произвольном порядке:

+стр Начать печать со страницы стр (по умолчанию с 1).

-кол Печать в кол колонок (по умолчанию 1). При печати в несколько колонок автоматически действуют опции -e и -i. Эта опция несовместима с опцией -m.

-a Печать в несколько колонок с упорядочением по строкам. Кол должно быть больше единицы. Если строка не помещается в колонке, она обрезается.

-m Слияние и печать всех файлов одновременно, по одному в колонке. Максимальное число сливаемых файлов - 8. Если строка не помещается в колонке, она обрезается. Эта опция несовместима с опцией -кол.

-d Выдача через строчку. Если образующиеся пустые строки оказываются в начале страницы, они аннулируются.

-e[символ][число] Установка табуляции через заданное число позиций, начиная с первой. Если число равно 0 или опущено, то предполагается обычная табуляция в каждой восьмой позиции. Символы табуляции во входном файле развертываются в соответствующее количество пробелов. Если задан любой нецифровой символ, он рассматривается как символ табуляции во входном файле. Естественно, подразумеваемым значением символа является символ табуляции.

-i[символ][число] При выводе, где это возможно, последовательности пробелов заменяются символами табуляции, считая что табуляции установлены через заданное число позиций, начиная с первой. Если число равно 0 или опущено, то предполагается обычная табуляция в каждой восьмой позиции. Если задан любой нецифровой символ, он выводится в качестве символа табуляции. Естественно, подразумеваемым значением символа является символ табуляции.

-n[символ][число] Производится нумерация строк. Номер занимает (число+1) первых позиций каждой колонки при обычном выводе или каждой строки при выводе с опцией -m. Если задан любой нецифровой символ, то он присоединяется к номеру строки, отделяя ее от последующего текста. Подразумеваемым значением символа является символ табуляции.

-wширина Установка ширины строки (по умолчанию - 72 позиции). Эта опция действует только при печати в несколько колонок (опции кол и -m). При печати в одну колонку ограничений на ширину строки нет.

-oотс Установка отступа слева на отс позиций (по умол чанию - на 0). Количество позиций в каждой строке есть сумма ширины и отступа.

-lдлина Установка длины страницы (по умолчанию 66). -l0 интерпретируется как -l66. Если длина равна или меньше 10, то действует опция -t (подавление заголовка и хвостовика).

-h текст Замена имени файла в заголовке текстом. Опция игнорируется, если задана опция -t или -l и длина равна или меньше 10. (Эта опция - единственная в команде pr, при записи которой требуется отделять аргумент пробелом.)

-p Пауза перед выдачей каждой страницы, если вывод назначен на терминал (pr включит звонок и будет ждать нажатия клавиши возврата каретки).

-f Использовать символы перехода к новой странице (по умолчанию для перехода на новую страницу используется последовательность переводов строк). Делать паузу перед выдачей первой страницы, если стандартный вывод назначен на терминал.

-r Подавление диагностических сообщений при ошибках открытия файлов.

-t Подавление печати 5-строчного идентифицирующего заголовка и 5-строчного хвостовика, сопровождающих обычно каждую страницу. Завершение печати после вывода последней строки каждого файла, без перехода в конец страницы.

-sсимвол Разделение столбцов единственным символом, а не соответствующим количеством пробелов. Подразумеваемым значением символа является символ табуляции.

ПРИМЕРЫ

Напечатать файлы f1 и f2 в три колонки, через строчку, с заголовком "file list":

pr -3dh "file list" f1 f2

Переписать файл f3 в f4, расставив табуляции в позициях 10, 19, 28, 37, ...:

pr -e9 -t <f3 >f4

ФАЙЛЫ

/dev/tty* Для задержки сообщений.

СМ. ТАКЖЕ

, .



PRF(7)


НАЗВАНИЕ

prf - псевдоустройство для накопления и анализа временного профиля системы

ОПИСАНИЕ

Специальный файл /dev/prf обеспечивает доступ к информации об активности операционной системы. С помощью записи в этот файл подсистеме измерения активности системы передаются адреса отслеживаемых процедур. Чтение из данного файла возвращает эти адреса и набор счетчиков, характеризующих активность между смежными адресами.

Регистрационный механизм управляется системными часами. Значение счетчика команд опрашивается с линейной частотой. Для значений счетчика команд, принадлежащих операционной системе, находится соответствующая процедура и для нее увеличивается счетчик. Эта информация используется при последующей обработке.

ФАЙЛЫ

/dev/prf

СМ. ТАКЖЕ

.



PRINTF(3S)


НАЗВАНИЕ

printf, fprintf, sprintf, snprintf, asprintf, vprintf, vfprintf, vsprintf, vsnprintf, vasprintf - вывод с преобразованием по формату

СИНТАКСИС

#include <stdio.h>

int printf (format, val ...) char *format;

int fprintf (stream, format, val ...) FILE *stream; char *format;

int sprintf (s, format [, val] ...) char *s, *format;

int snprintf(char *str, size_tsize, const char *format, ...)

int asprintf(char **ret, const char *format, ...)

#include <stdarg.h>

int vprintf(const char *format, va_list ap)

int vfprintf(FILE *stream, const char *format, va_list ap)

int vsprintf(char *str, char *format, va_list ap)

int vsnprintf(char *str, size_t size, const char *format, va_list ap)

int vasprintf(char **ret, const char *format, va_list ap)

ОПИСАНИЕ

Функция printf направляет данные в стандартный поток вывода stdin. Функция fprintf направляет данные в поток вывода, заданный аргументом stream. Функция sprintf направляет данные, заканчивающиеся пустым символом (\0), в массив s; пользователь должен позаботиться о выделении достаточного количества памяти для массива. Каждая функция возвращает число переданных символов (не считая пустого в случае sprintf), или отрицательное число, если при выводе обнаружилась ошибка.

Каждая из перечисленных функций преобразует, форматирует и печатает выводимые значения val под управлением формата, заданного аргументом format. Формат - это цепочка символов, содержащая об екты двух категорий: обычные символы, которые просто копируются в выходной поток, и спецификаторы преобразований, каждому из которых соответствует одно, несколько или ни одного из выводимых значений. Если выводимых значений val недостаточно, результат непредсказуем; если их слишком много, избыточные игнорируются.

Каждый спецификатор преобразования начинается символом %, после которого последовательно записываются:

Флаги (один, несколько или ни одного), которые уточняют смысл спецификации преобразования. Необязательная последовательность десятичных цифр, задающая минимальную ширину поля, в котором изображается результат преобразования. Если результат может быть изображен меньшим количеством символов, то поле дополняется слева (или справа, если задан флаг выравнивания по левой границе) пробелами до минимальной ширины; если последовательность, задающая ширину поля, начинается нулем, то для дополнения используются нули. Точность, задающая минимальное количество цифр в изображении результата преобразования типа d, i, o, u, x, X, количество цифр после десятичной точки в изображении результата преобразования типа e, E, f, максимальное количество значащих цифр в изображении результата преобразования типа g, G, или максимальное количество символов в изображении результата преобразования типа s. Точность записывается в виде точки (.), за которой следует несколько десятичных цифр; отсутствие цифр интерпретируется как ноль. Дополнение результата символами, обусловленное точностью, подавляет дополнение, обусловленное шириной поля. Необязательный символ l, означающий, что относящиеся к нему преобразования d, i, o, u, x, X применяются к целым выводимым значениям типа long. Для остальных преобразований символ l игнорируется. Символ, обозначающий тип преобразования.


Вместо последовательности цифр ширину поля и точность можно обозначить звездочкой. Это означает, что в качестве ширины поля (или точности) используется целое значение val из списка аргументов; оно должно предшествовать соответствующему выводимому значению. Если значение, задающее ширину поля, отрицательно, то считается, что задан флаг -, а в качестве ширины поля берется абсолютная величина значения. Если отрицательно значение, задающее точность, она принимается равной нулю.

Флаги и их смысл:
- Выравнивание результата преобразования по левой границе. + Обязательное изображение знака (для чисел со знаком). пробел Если первый символ результата преобразования со знаком отличен от + и -, то изображение результата предваряется пробелом. Тем самым флаг + аннулирует действие флага пробел. # Этот флаг означает, что значение преобразуется к "альтернативной форме". Для преобразований c, d, i, s, u этот флаг не имеет значения. Для преобразования типа o результат изображается с увеличенной точностью, с тем чтобы первая цифра результата была нулем. Для преобразований типа x, X ненулевой результат будет изображаться с префиксом 0x или 0X. Для преобразований типа e, E, f, g, G результат обязательно изобразится с десятичной точкой, даже если за ней нет цифр (обычно точка в этом случае опускается). Для преобразований g, G не подавляются незначащие хвостовые нули (что обычно делается).

Символы, обозначающие тип преобразования, и их смысл:
d, i, o, u, x, X Целое выводимое значение преобразуется в десятичное со знаком (d, i), беззнаковое восьмеричное (o), десятичное (u) или шестнадцатеричное (x, X); буквы abcdef изображают шестнадцатеричные цифры при преобразовании x, а ABCDEF - при преобразовании X. Точность задает минимальное количество цифр в изображении результата; если результат можно изобразить меньшим количеством цифр, то слева добавляются незначащие нули. Значение точности по умолчанию равно 1. Результат преобразования нуля с нулевой точностью - пустая цепочка. f Выводимое значение типов float или double преобразуется в десятичное число и изображается в виде [-]ddd.ddd, где число цифр после точки определяется точностью. Если точность опущена, то считается, что она равна 6; если точность равна нулю, точка не печатается. e, E Выводимое значение типов float или double преобразуется в десятичное число и изображается в виде [-]d.ddde+/-dd, где перед точкой находится ровно одна цифра, а число цифр после точки определяется точностью; по умолчанию точность равна 6; если точность равна нулю, точка не печатается. Спецификация E отличается от e только обозначением порядка (E вместо e). Порядок всегда содержит по крайней мере две цифры. g, G Выводимое значение типов float или double преобразуется в десятичное число и изображается либо в формате f, либо в формате e (или E, если задана спецификация G); точность определяется числом значащих цифр. Вид изображения зависит от значения аргумента: вид e используется только в том случае, если порядок меньше -4 или больше значения точности. Хвостовые незначащие нули подавляются; десятичная точка печатается, только если за ней есть цифры. c Печатается значение-символ. s Выводимое значение, заданное указателем, рассматривается как цепочка символов, ограниченная пустым символом (\0); печать цепочки прекращается либо по ограничителю, либо после вывода количества символов, равного значению точности. По умолчанию точность считается бесконечно большой; в этом случае цепочка печатается до тех пор, пока не встретится ограничитель. Пустой указатель (NULL) дает непредсказуемые результаты. % Печать символа %; выводимых значений не требуется.


PRINTMAIL(1L)


ИМЯ

printmail - форматирует почту в читаемый формат для печати

СИНТАКСИС

printmail {-p} {filename}

ОПИСАНИЕ

Printmail копирует все сообщения из указанного файла или из почтового ящика пользователя на стандартный вывод, разбивая его на строки.

ПРИМЕР

Типичное применение этой команды:

printmail | lpr

АВТОР

Elm Development Group

СМ. ТАКЖЕ

readmsg(1L)



PROCTL(3) XENIX System V (21 июня 1987)


ИМЯ

proctl - yпpaвляeт aктивными пpoцeccaми или гpyппaми пpoцeccoв

СИНТАКСИС

#include <sys/proctl.h>

proctl (pid, command, arg) int pid, command; char *arg;

ОПИСАНИЕ

Proctl выпoлняeт дeйcтвия c aктивными пpoцeccaми или гpyппaми пpoцeccoв. Oнa имeeт тoт жe фopмaт, чтo и фyнкция ioctl(S), нo в кaчecтвe пepвoгo apгyмeнтa вмecтo нoмepa oткpытoгo фaйлa иcпoльзyeт ID пpoцecca pid.

Command пocpeдcтвoм cимвoличecкoгo aнaлoгa цeлoгo чиcлa зaдaeт выпoлняeмoe дeйcтвиe. Arg являeтcя yкaзaтeлeм нa cтpyктypy дaнныx, oпpeдeляющyю пapaмeтpы, cвязaнныe c command.

Ecли pid блoьшe 0, command вoздeйcтвyeт нa пpoцecc, чeй ID paвeн pid. Pid мoжeт быть paвeн 1.

Ecли pid paвeн 0, command вoздeйcтвyeт нa вce пpoцeccы (кpoмe пpoцeccoв c ID 0 и 1), вxoдящиe в тy жe гpyппy пpoцeccoв, чтo и тeкyщий пpoцecc.

Ecли pid paвeн -1 и эффeктивный пoльзoвaтeльcкий ID тeкyщeгo пpoцecca нe пpивилeгиpoвaнный, command вoздeйcтвyeт нa вce пpoцeccы (кpoмe пpoцeccoв c ID 0 и 1), чeй peaльный пoльзoвaтeльcкий ID paвeн эффeктивнoмy пoльзoвaтeльcкoмy ID тeкyщeгo пpoцecca.

Ecли pid paвeн -1 и эффeктивный пoльзoвaтeльcкий ID тeкyщeгo пpoцecca пpивилeгиpoвaнный, command вoздeйcтвyeт нa вce пpoцeccы (кpoмe пpoцeccoв c ID 0 и 1).

Ecли pid oтpицaтeлeн, нo нe paвeн -1, command вoздeйcтвyeт нa вce пpoцeccы, вxoдящиe в гpyппy c ID, paвным aбcoлютнoмy знaчeнию pid.

Proctl aвapийнo зaвepшaeтcя, ecли выпoлняeтcя xoтя бы oднo из cлeдyющиx ycлoвий:

[EINVAL] Command или arg нeкoppeктны. [EPERM] Эффeктивный пoльзoвaтeльcкий ID тeкyщeгo пpoцecca нe пpивилeгиpoвaнный и ни oн, ни peaльный пoльзoвaтeльcкий ID нe coвпaдaют c эффeктивным или peaльным пoльзoвaтeльcким ID пpoцecca, кoтopoмy aдpecoвaнa command. [ENOMEM] Heдocтaтoчнo пaмяти. [EFAULT] Aдpec, зaдaнный arg, выxoдит зa пpeдeлы aдpecнoгo пpocтpaнcтвa пpoцecca.

Oгpaничeния пo пaмяти

Bызoв aвapийнo зaвepшaeтcя, ecли в oблacти cвoпингa нe oкaзывaeтcя дocтaтoчнoгo мecтa. Этo oгpaничeниe мoжeт быть cнятo иcпoльзoвaниeм cлeдyющиx знaчeний apгyмeнтa command фyнкции proctl:

PRHUGEX Пoмeчaeт пpoцecc кaк HUGE, чтo пoзвoляeт eмy выпoлнять пpoгpaммы дaжe, ecли oни пpeвышaют дocтyпный oбъeм oблacти cвoпингa. Эффeктивный пoльзoвaтeльcкий ID пoмeчaющeгo пpoцecca дoлжeн быть пpивилeгиpoвaнным, HUGE пpoцeccы блoкиpyютcя в oпepaтивнoй пaмяти, чтoбы избeжaть cвoпингa. Пpoцecc, пoмeчeнный кaк HUGE, нo нe пpeвышaющий дocтyпнoгo oбъeмa oблacти cвoпингa, вeдeт ceбя oбычным oбpaзoм, нo нe мoжeт быть пpeoбpaзoвaн в блoкиpoвaнный пpoцecc. PRNORMX Пoмeчaeт пpoцecc кaк нecпocoбный вызывaть c пoмoщью HUGE пpoгpaммы. Taкyю пoмeткy мoжeт cдeлaть любoй пoльзoвaтeль. Ecли дeлaeтcя пoпыткa пoмeтить тaким oбpaзoм пpoцecc, кoтopый yжe нe пoмeщaeтcя в oблacть cвoпингa, proctl зaвepшaeтcя c oшибкoй EINVAL.

Cлeдyющий фpaгмeнт кoдa пoзвoляeт пpoцeccy выпoлнятьcя дaжe, ecли для нeгo нeт мecтa в oблacти cвoпингa:

if(argc<2) { fputs("usage: runbig command arg ...\n",stderr); ; } argv[argc]=0; if(proctl(getpid(),PRHUGEX,(char *)0)<0) { perror("runbig"); exit(1); }

BOЗВPAЩAEМOE ЗНAЧEНИE

B cлyчae oшибки вoзвpaщaeтcя знaчeниe -1 и в errno зaнocитcя кoд oшибки.

СМ. ТАКЖЕ

, ioctl(3), kill(3)

ЗAМEЧAНИЯ

Пpoгpaммы, иcпoльзyющиe эти фyнкции, дoлжны кoмпoнoвaтьcя c флaгoм -lx.



PROF(1)


НАЗВАНИЕ

prof - вывод результатов профилирования

СИНТАКСИС

prof [-t] [-c] [-a] [-n] [-o] [-x] [-g] [-z] [-h] [-s] [-m файл_профиля] [прогр]

ОПИСАНИЕ

Команда prof интерпретирует файл_профиля, подготовленный с помощью функции . При этом читается таблица имен об ектного файла прогр (по умолчанию a.out) и соотносится с файлом_профиля (по умолчанию mon.out). Для каждого внешнего объекта из секции команд выдается время (в процентах), затраченное на выполнение участка программы между адресом данного объекта и адресом следующего. Кроме того, печатается число вызовов каждой функции и среднее время в миллисекундах, затраченное на один вызов.

Следующие взаимоисключающие опции определяют критерий сортировки выводимых строк:

-t Сортировать по уменьшению доли общего времени (применяется по умолчанию). -c Сортировать по уменьшению количества вызовов. -a Сортировать по увеличению адресов. -n Сортировать по именам лексикографически.

Взаимоисключающие опции -o и -x задают формат вывода адресов объектов:

-o Выводить вместе с именем восьмеричный адрес объекта. -x Выводить вместе с именем шестнадцатеричный адрес объекта.

Следующие опции можно использовать в произвольной комбинации:

-g Включить в выдачу неглобальные объекты (статические функции). -z Включить в выдачу все объекты из диапазона профилирования [см. ], даже если соответствующие им количество вызовов и доля общего времени равны нулю. -h Подавить выдачу обычно печатаемого заголовка. (Данная опция полезна, если результаты предназначены для последующей обработки.) -s Выдать в стандартный протокол итоговую информацию о профилировании. -m файл_профиля

Использовать в качестве исходного файл_профиля, а не mon.out.

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

Имя файла, создаваемого профилируемой программой, определяется по переменной окружения PROFDIR. В случае отсутствия переменной PROFDIR, в каталоге, текущем на момент окончания программы, создается файл mon.out. Если PROFDIR=цепочка, то создается файл цепочка/идентификатор_процесса.имя_программы, где имя_программы задается аргументом командной строки argv[0] с удаленным маршрутным префиксом. Если значение PROFDIR является пустой цепочкой, то данные о профилировании в файл не записываются.

В целях профилирования функция может быть разбита на подфункции с помощью макроса MARK [см. ].

ФАЙЛЫ


mon.out Подразумеваемый файл профиля. a.out Подразумеваемый файл с таблицей имен.

СМ. ТАКЖЕ

.

, , , в Справочнике программиста.

ПРЕДОСТЕРЕЖЕНИЯ

Временные данные, выдаваемые для последовательных идентичных вызовов программы могут варьироваться в пределах 20 и более процентов из-за различий в скорости работы кэш-памяти, разделяемой с другими процессами. Даже если Вам кажется, что программа исполняется на компьютере в гордом одиночестве, то и тогда скрытые фоновые или асинхронные процессы могут исказить получаемые данные. В редких случаях сильное искажение измерений может произойти вследствие наложения циклов в программе и тактов часов, инициирующих запись программного счетчика.

Если не используется опция -g, то время выполнения статических функций приписывается к предыдущим внешним объектам. Однако количество вызовов внешних функций сообщается верно.

ОГРАНИЧЕНИЯ

Создание файла профиля гарантируется только для программ, вызывавших или выполняющих возврат из функции main. В других случаях нужно позаботиться о явном заключительном вызове функции monitor.

При использовании для профилирования опции -p в команде есть предел числа функций (600), для которых во время выполнения программы подсчитывается число вызовов. Для увеличения этого предела следует вызывать функцию monitor самостоятельно. Если лимит будет превышен, то произойдет наложение данных и файл mon.out окажется испорченным. Число использованных счетчиков сообщается командой prof автоматически в том случае, если оно превысило 5/6 максимума.









PROF(5)


НАЗВАНИЕ

prof - подготовка временного профиля одной функции

СИНТАКСИС

#define MARK #include <prof.h>

void MARK (name)

ОПИСАНИЕ

Вызов макроса MARK введет метку с именем name, которая с точки зрения подготовки временного профиля трактуется аналогично точке входа функции. Выполнение команд макроса приведет к увеличению счетчика для данной метки, а затраченное время приплюсуется к предыдущей метке, введенной посредством макроса MARK, или, если таковой в пределах функции нет, то к точке входа функции.

Имя name может быть произвольной комбинацией букв, цифр и символов подчеркивания. В пределах одного файла все профилируемые имена должны быть уникальными, однако они могут совпадать с другими программными об ектами.

Чтобы данная возможность тонкого профилирования работала, имя MARK должно быть определено до того, как в текст будет включен файл <prof.h>. Имя MARK может быть определено с помощью директивы препроцессора, как это сделано выше, или с помощью аргумента командной строки, например:

cc -p -DMARK f1.c

Если имя MARK не определено, то предложения с макросом MARK (name) могут быть оставлены в исходных файлах, так как они будут проигнорированы.

Просмотреть подготовленный профиль можно с помощью опции -g программы .

ПРИМЕР

В данном примере макросы можно использовать для определения времени, затраченного на выполнение каждого цикла. Если этот пример не откомпилирован с определенным в командной строке именем MARK, то макросы игнорируются.

#include <prof.h> f1 () { int i,j; ... MARK(loop1); for (i = 0; i < 2000; i++) { ... } MARK(loop2); for (j = 0; j < 2000; j++) { ... } }

СМ. ТАКЖЕ

, .

в Справочнике пользователя.

ОГРАНИЧЕНИЯ

При вызове макроса MARK не должно быть пробелов между скобками и именем name, так как макрос определен в виде ассемблерных вставок и пробелы приведут к ошибке в метке.



PROFIL(2)


НАЗВАНИЕ

profil - подготовка временного профиля программы

СИНТАКСИС

void profil (buff, bufsiz, offset, scale) char *buff; int bufsiz, offset, scale;

ОПИСАНИЕ

Аргумент buff указывает на область памяти, размер которой в байтах задается аргументом bufsiz. После выполнения данного системного вызова при каждом такте часов анализируется счетчик команд: из него вычитается значение offset и полученная разность умножается на коэффициент scale. Если результат соответствует какому-либо элементу внутри области buff, то данный элемент увеличивается на 1. Элемент определяется как последовательность байт длины sizeof(short).

Коэффициент scale интерпретируется как беззнаковая денормализованная двоичная дробь с фиксированной точкой, стоящей слева от границы полуслова. Так, коэффициент 0177777 (восьмеричное) дает взаимно-однозначное отображение значений счетчика команд на элементы области buff; 077777 отображает на один элемент пару соседних команд. При значении scale, равном 02, все команды отобразятся на первый элемент области buff, который в результате превратится в непрерываемые часы.

Если значение аргумента scale задано равным 0 или 1, получение профиля выключается. При bufsiz равном 0 профилирование не выключается, однако его результаты нигде не фиксируются. Профилирование выключается при выполнении системного вызова exec, но остается в процессе-потомке и родительском процессе после вызова fork. Профилирование отключается, если обращение к элементу области buff приведет к выходу за границы памяти, отведенной процессу.

СМ. ТАКЖЕ

, . в Справочнике пользователя.

ДИАГНОСТИКА

Не предусмотрена.



PROFILE(4)


НАЗВАНИЕ

profile - формирование окружения при входе в систему

СИНТАКСИС

/etc/profile $HOME/.profile

ОПИСАНИЕ

Для всех пользователей, использующих shell [см. ] в качестве программы, которая запускается при входе в систему, как часть процедуры входа выполняются команды, содержащиеся в вышеуказанных файлах.

Файл /etc/profile позволяет администратору системы выполнить обслуживающие действия для всех пользователей. Типичными являются: сообщение системных новостей, сообщение об имеющейся для пользователя почте, установка подразумеваемых значений для переменных окружения. Возможно также выполнение особых действий при входе в систему пользователя root или при выполнении команды . Как правило, в профайле имеется строка для установки часового пояса [см. timezone(4)]:

. /etc/TIMEZONE

Файл $HOME/.profile используется для установки нужных конкретному пользователю переменных окружения и характеристик терминала. Следующий пример является типичным для профайла (за исключением комментариев):

# Объявить некоторые переменные окружения глобальными export MAIL PATH TERM

# Установить маску создания файла umask 22

# Сообщать о приходе почты MAIL=/usr/mail/$LOGNAME

# Добавить пользовательский каталог bin # в последовательность каталогов, # просматриваемых shell'ом при поиске команды PATH=$PATH:$HOME/bin

# Установить тип терминала TERM=vt100

# Инициализировать терминал. # При этом переменная окружения TERM # уже должна быть экспортирована tput init # Придать обычный смысл клавише забоя stty erase '^H' echoe

ФАЙЛЫ

/etc/TIMEZONE Установка часового пояса.

$HOME/.profile Установка окружения пользователя.

/etc/profile Установка системного окружения.

/etc/addprofile Действия, специфичные для конкретной системы.

/etc/ttytype Таблица соответствия линий и типов терминалов.

СМ. ТАКЖЕ

, timezone(4), , .

, , , , , в Справочнике пользователя.

в Справочнике администратора.

ПРИМЕЧАНИЯ

Необходимо проявлять осторожность при выполнении общесистемных действий в /etc/profile. Персональные профайлы .profile лучше подходят для выполнения почти всех действий, за исключением наиболее глобальных.

PROFILE(7)


НАЗВАНИЕ

profile - устанавливает среду во время подключения к системе.

ОПИСАНИЕ

Необязательный файл, .profile, разрешает автоматическое выполнение комманд, когда пользователь не входил в систему. Этот файл в-основном используется для персонализации рабочей среды пользователя путем установления экспортируемых переменных среды и режима терминала (смотри environ(1)).

Когда пользователь входит, во входном каталоге входная оболочка пользователя ищет .profile. Если находит, перед началом сеанса оболочка выполняет команды в файле. Команды в файле могут иметь одинаковый формат, как если бы они вводились на клавиатуре. Любая строка, начинающаяся со знака (#), рассматривается как комментарий и игнорируется. Вот пример типичного файла:

# Tell me when new mail comes in MAIL=/usr/mail/myname # Add my /bin directory to the shell search sequence PATH=$PATH:$HOME/bin #Make some enviroment variables global export MAIL PATH TERM #Set file creation mask unmask 22

Отметим, что файл /etc/profile - профайл расширенной системы, который, если он существует, выполняется для каждого пользователя перед выполнением .profile пользователя.

ФАЙЛЫ

$HOME/.profile /etc/profile

СМ. ТАКЖЕ

, , , , stty(2), ,

PROFILER(1M)


НАЗВАНИЕ

profiler: prfld, prfstat, prfdc, prfsnap, prfpr - получение профиля работы системы UNIX

СИНТАКСИС

/etc/prfld [файл_с_системной_таблицей_имен] /etc/prfstat on /etc/prfstat off /etc/prfdc файл [период [час_окончания]] /etc/prfsnap файл /etc/prfpr файл [пороговое_значение [файл_с_системной_таблицей_имен]]

ОПИСАНИЕ

Утилиты prfld, prfstat, prfdc, prfsnap и prfpr образуют комплекс для анализа активности (профилирования) компонентов операционной системы UNIX.

Утилита prfld инициализирует регистрационный механизм. Генерируется таблица, содержащая начальные адреса каждой системной подпрограммы, выделенные из файла_с_системной_таблицей_имен.

Утилита prfstat служит для запуска и остановки регистрационного механизма. Накладные расходы при профилировании 500 процедур не превышают 1%. Утилита сообщает количество профилируемых процедур.

Утилиты prfdc и prfsnap выполняют сбор данных профилирования, накапливая в файле таблицы со значениями счетчика команд. Утилита prfdc будет сохранять счетчики в файле каждые период минут и выключится в час_окончания (допустимыми значениями для часа_окончания являются 0 24). Если файл существовал, prfdc в начале работы опустошит его. Утилита prfsnap собирает данные только во время вызова, добавляя к файлу значения счетчиков.

Утилита prfpr обрабатывает и распечатывает данные, собранные посредством prfdc или prfsnap. Каждый адрес преобразуется к ближайшему адресу процедуры (указанному в системной таблице имен) и выводится, если частота вызовов (в процентах) процедуры превышает пороговое_значение. Отметим, что в файле должны присутствовать как минимум два зафиксированных состояния таблицы со значениями счетчика команд.

ФАЙЛЫ

/dev/prf Интерфейс к данным профилирования и таблице со значениями счетчика команд. /unix Подразумеваемый файл с системной табли- цей имен.

СМ. ТАКЖЕ

в Справочнике пользователя.

, , в Справочнике программиста.



PRS(1)


НАЗВАНИЕ

prs - печать SCCS-файлов

СИНТАКСИС

prs [-d[спецификация_данных]] [-r[с_идентификатор]] [-e] [-l] [-c[кон_время]] [-a] файл ...

ОПИСАНИЕ

Команда prs выдает на стандартный вывод части SCCS-файла или файл целиком [см. ] в формате, который задает пользователь. Если указано имя каталога, prs обрабатывает все файлы в этом каталоге, начинающиеся с s.; файлы, к которым нет доступа на чтение, игнорируются без дополнительных сообщений. Если указано имя -, происходит чтение со стандартного ввода, каждая строка при этом трактуется как имя SCCS-файла, подлежащего обработке. Файлы, не начинающиеся с s., и файлы, к которым нет доступа на чтение, также игнорируются без дополнительных сообщений.

В командной строке prs можно в любом порядке задавать опции и имена файлов.

Каждая опция независимо применяется к каждому файлу.

-d[спецификация_данных]

Используется для указания данных, подлежащих выводу. Спецификация_данных - это строка, состоящая из ключевых слов данных [см. ниже] и дополнительного текста, задаваемого пользователем.

-r[с_идентификатор]

Указывает, информация о какой версии требуется. Если с_идентификатор не указан, подразумевается самая поздняя версия.

-e Указывает, что требуется информация обо всех версиях, созданных не позднее версии, определенной в опции -r, или не позднее даты, заданной в опции -c.

-l Указывает, что требуется информация обо всех версиях, созданных не ранее версии, определенной в опции -r, или не ранее даты, заданной в опции -c.

-c[кон_время]

Кон_время имеет формат:

гг[мм[дд[чч[мм[сс]]]]]

Опущенные цифры по умолчанию имеют максимально возможные значения, например -c7502 эквивалентно -c750228235959. Любое число любых нецифровых символов может разделять пары цифр; например, можно задать кон_время в виде "-c77/2/2 9:22:25".

-a Указывает, что требуется информация как о существующих (типа D), так и об удаленных (типа R) версиях [см. ]. Если опция -a не указана, выдается информация только о существующих версиях.

Ключевые слова данных


Ключевые слова данных определяют части SCCS-файла, которые должны быть извлечены и выведены. Все части SCCS-файла [см. ] имеют соответствующие ключевые слова. Каждое ключевое слово может появляться в спецификации_данных любое число раз.

Информация, печатаемая командой prs, состоит из: (1) пользовательского текста и (2) соответствующих значений (извлеченных из SCCS-файла), подставленных вместо опознанных ключевых слов данных в порядке их появления в спецификации_данных. Формат значения ключевого слова данных может быть простым (П), при котором осуществляется прямая подстановка и многострочным (М), при котором за подставленным значением следует возврат каретки.

В спецификации_данных может использоваться также любой другой текст, отличный от ключевых слов. Табуляция представляется как \t, а возврат каретки/перевод строки - как \n.

КЛЮЧЕВЫЕ СЛОВА ДАННЫХ

Ключ. слово Элемент данных Раздел SCCS-файла Значение Формат :Dt: Информация о фрагменте Таблица фрагментов см. ниже П :DL: Статистика строк " :Li:/:Ld:/:Lu: П :Li: Число строк, вставленных в версии " nnnnnП :Ld: Число строк, удаленных в версии " nnnnn П :Lu: Число строк, не изменившихся в версии " nnnnn П :DT: Тип версии " D или R П :I: СИД " :R:.:L:.:B:.:S: П :R: Номер версии " nnnn П :L: Номер уровня " nnnn П :B: Номер ветви " nnnn П :S: Номер модификации " nnnn П :D: Дата создания версии " :Dy:/:Dm:/:Dd: П :Dy: Год создания версии " nn П :Dm: Месяц создания версии " nn П :Dd: День создания версии " nn П :T: Время создания версии " :Th:::Tm:::Ts: П :Th: Час создания версии " nn П :Tm: Минута создания версии " nn П :Ts: Секунда создания версии " nn П :P: Пользователь, создавший версию " входное имя П :DS: Порядковый номер версии " nnnn П :DP: Порядковый номер отца " nnnn П :DI: Порядковые номера включенных, исключенных,проигнорированных версий " :Dn:/:Dx:/:Dg: П :Dn: Порядковые номера включенных версий " :DS: :DS:... П :Dx: Порядковые номера исключенных версий " :DS: :DS:... П :Dg: Порядковые номера проигнорированных версий " :DS: :DS:... П :MR: Номера запросов " текст М :C: Комментарии " текст М :UN: Имена пользователей Имена пользователей текст М :FL: Список флагов Флаги текст М :Y: Флаг типа модуля " текст П :MF: Флаг проверки номеров запросов " да или нет П :MP: Имя программы проверки номеров запросов " текст П :KF: Флаг ошибок/предупреждений " да или нет П :BF: Флаг ветвления " да или нет П :J: Флаг одновременного редактирования " да или нет П :LK: Закрытые версии " :R:... П :Q: Определяемый пользователем текст " текст П :M: Имя модуля " текст П :FB: Минимальный номер редактируемой версии " :R: П :CB: Максимальный номер редактируемой версии " :R: П :Ds: СИД по умолчанию " :I: П :ND: Флаг пустоты версии " да или нет П :FD: Текст, описывающий файл Комментарии текст М :BD: Тело Тело текст М :GB: Извлеченное тело " текст М :W: Строка Нет :Z::M:\t:I: П :A: Строка Нет :Z::Y: :M: :I::Z: П :Z: Ограничитель строки Нет @(#) П :F: Простое имя SCCS-файла Нет текст П :PN: Составное имя SCCS-файла Нет текст П * :Dt: = :DT: :I: :D: :T: :P: :DS: :DP: <



/p>

ПРИМЕРЫ



Команда

prs \ -d"Имена и/или идентификаторы пользователей для :F::\n:UN:"\ s.file

может вывести на стандартный вывод:

Имена и/или идентификаторы пользователей для s.file: xyz 131 abc

Команда

prs \ -d"Последнюю версию программы :M:: :I: создал :P: :D:"\ -r s.file

может вывести на стандартный вывод

Последнюю версию программы main.c: 3.7 создал cas 77/12/1

Особый случай:

prs s.file

может вывести на стандартный вывод

D 1.1 77/12/1 00:00:00 cas 1 000000/00000/00000 MRs: bl78-12345 bl79- 54321 COMMENTS: это строка коммментария для начальной версии

для каждой версии типа D. В особом случае можно использовать только опцию -a.

ФАЙЛЫ

/tmp/pr?????

СМ. ТАКЖЕ

, , , , .

в Справочнике программиста.

ДИАГНОСТИКА

Для раз яснений пользуйтесь командой .









PS(1)


НАЗВАНИЕ

ps - выдача информации о состоянии процессов

СИНТАКСИС

ps [-e] [-d] [-a] [-f] [-l] [-n файл_с_системой] [-t список_терминалов] [-p список_идентификаторов_процессов] [-u список_идентификаторов_пользователей] [-g список_идентификаторов_лидеров_групп]

ОПИСАНИЕ

Команда ps выдает информацию об активных процессах. По умолчанию информация дается только о процессах, ассоциированных с данным терминалом. Выводятся идентификатор процесса, идентификатор терминала, истраченное к данному моменту время ЦП и имя команды. Если нужна иная информация, следует пользоваться опциями.

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

Командой ps обрабатываются следующие опции:

-e Вывести информацию обо всех процессах.

-d Вывести информацию обо всех процессах, кроме лидеров групп.

-a Вывести информацию обо всех наиболее часто запрашиваемых процессах, то есть обо всех процессах, кроме лидеров групп и процессов, не ассоциированных с терминалом.

-f Генерировать полный листинг (см. ниже раз яснение смысла колонок).

-l Генерировать листинг в длинном формате (см. ниже).

-n файл_с_системой

Считать, что операционная система загружена из файла_с_системой, а не из файла /unix.

-t список_терминалов

Выдавать информацию только о процессах, ассоциированных с терминалами из заданного списка_терминалов. Терминал - это либо имя файла-устройства, например ttyномер или console, либо просто номер, если имя файла начинается с tty.

-p список_идентификаторов_процессов

Выдавать информацию только об указанных процессах.

-u список_идентификаторов_пользователей

Выдавать информацию только о процессах с заданными идентификаторами или входными именами пользователей. Идентификатор пользователя выводится в числовом виде, а при наличии опции -f - в символьном.

-g список_идентификаторов_лидеров_групп


Выводить информацию только о процессах, для которых указаны идентификаторы лидеров групп. Лидер группы - это процесс, номер которого идентичен его идентификатору группы. Shell, запускаемый при входе в систему, является стандартным примером лидера группы.

При указании опции -f ps пытается определить имя команды и аргументы, с которыми был создан процесс, исследуя пользовательский блок процесса. Если это не удается, имя процесса выводится так же, как и при отсутствии опции -f, только заключается в квадратные скобки.

Ниже приводятся заголовки колонок выдачи и об ясняется смысл их содержимого. Буквы l или f в скобках означают, что эта колонка появляется соответственно при длинном или полном формате выдачи; отсутствие букв означает, что данная колонка выводится всегда. Отметим, что опции -l и -f влияют только на формат выдачи, но не на список процессов, информация о которых будет предоставлена.
F (l) Флаги (шестнадцатеричные), логическая сумма которых дает следующие сведения о процессе: 00 Процесс терминирован; элемент таблицы процессов свободен. 01 Системный процесс: всегда в основной памяти. 02 Процесс трассируется родительским процессом. 04 Родительский трассировочный сигнал остановил процесс; родительский процесс ждет [см. ]. 08 Процесс не может быть разбужен сигналом. 10 Процесс в основной памяти. 20 Процесс в основной памяти; блокирован до завершения события. 40 Идет сигнал к удаленной системе. 80 Процесс в очереди на ввод/вывод. S (l) Статус процесса: O Активный: обрабатывается процессором. S Спящий: ожидает завершения события. R Готов: стоит в очереди на выполнение. I Рождающийся: процесс создается. Z Состояние "зомби": процесс завершен, но родительский процесс не ждет этого. T Трассируемый: процесс остановлен сигналом, так как родительский процесс трассирует его. X Растущий: процесс ожидает получения большего об ема основной памяти. UID (f,l) Идентификатор владельца процесса; при указании опции -f выдается входное имя пользователя. PID Идентификатор процесса (необходим для терминирования процесса). PPID (f,l) Идентификатор родительского процесса. C (f,l) Доля выделенного планировщиком времени ЦП. STIME (f) Время запуска процесса (часы:минуты:секунды). Если процесс запущен более чем 24 часа назад, выдается месяц и день запуска. PRI (l) Приоритет процесса; большее число означает меньший приоритет. NI (l) Поправка к приоритету. ADDR (l) Адрес процесса в памяти. SZ (l) Размер (в блоках по 512 байт) образа процесса в памяти. WCHAN (l) Адрес события, которого ожидает процесс. У активного процесса эта колонка пуста. TTY Управляющий терминал (обычно - терминал, с которого был запущен процесс; см. ниже СЮРПРИЗЫ). Если такового нет, выдается символ ?. TIME Истраченное процессом время ЦП. COMMAND Имя программы; если указана опция -f, то выводится полное имя команды и ее аргументы.



Процесс, закончивший выполнение своей программы, и имеющий родительский процесс, не дождавшийся еще завершения, в качестве имени программы получает .

ФАЙЛЫ

/dev /dev/sxt/* /dev/tty* /dev/kmem Виртуальная память ядра. /dev/mem Память. /etc/passwd Файл паролей, из которого берется инфор- мация об идентификаторах пользователей. /etc/ps_data Внутренняя структура данных. /unix Имя файла, откуда была загружена операци- онная система.

СМ. ТАКЖЕ

, , . в Справочнике администратора.

СЮРПРИЗЫ

Во время выполнения команды ps положение вещей может измениться; таким образом, ps дает лишь хорошее приближение к действительности.

Некоторые сведения, относящиеся к процессам, отмеченным как , не соответствуют действительности.

Если не указана ни одна из опций -t, -p, -u, -g, команда ps проверяет стандартный ввод, стандартный вывод и стандартный протокол (в указанном порядке) для определения управляющего терминала и пытается вывести информацию о процессах, ассоциированных с этим терминалом. В ситуации, когда все три стандартных направления ввода/ вывода переназначены, ps не может найти и выдать имя управляющего терминала.

Команда ps -ef может не отметить начало входа в систему, а вывести сведения о последнем запуске для данной терминальной линии.









PSTAT(1)


ИМЯ

pstat - Сообщает системную информацию.

СИНТАКСИС

pstat [ -aixpf ] [ -u ubase ] [ -c corefile ] [ -n namelist ] [file ]

ОПИСАНИЕ

Команда pstat интерпретирует содержание определенных системных таблиц, команда pstat выполняет поиск этих таблиц в файле /dev /mem и /dev/kmem. Если задан файл (аргумент file), то таблицы прежде разыскиваются в описанном файле, а затем в /dev/mem. Аналогично, опция -с позволяет вам указать для поиска файл corefile, в котором таблицы будут разыскиваться раньше, чем в /dev/mem. Необходимый список имен берется из файла /xenix. Доступны следующие опции:

-a Под действием опции -p описывает в первую очередь все сегменты процессов, а не процессы, которые уже действуют.

-i Печатает таблицу узлов со следующими заголовками:

LOC Центральное расположение входа в эту таблицу.

FLAGS Разнообразные переменные состояния, закодированные следующим образом:

L Заблокированное U Необходимо скорректировать время обновления файловой системы (F) A Необходимо скорректировать время доступа M Файловая система смонтирована здесь W Разыскивается другим процессом (Включен флаг L) T Содержит текстовый файл C Измененное время должно быть скорректировано

CNT Число открытых входов в файловую систему для данного узла.

DEV Старший и младший номер устройства файловой системы, в которой размещен данный узел.

INO I-номер в пределах указанного устройства.

MODE Биты режима, см. команду chmod(S).

NLK Число связей,ведущих к этому узлу.

UID Пользовательский идентификатор ID владельца

SIZ/DEV Число байтов в исходном файле, или старший и младший номера устройства специального файла.

-x Печатает текстовую таблицу со следующими заголовками (только 286):

LOC расположение входа в эту таблицу в памяти.

FLAGS Разнообразные переменные состояния, закодированные следующим образом:

T Команда в действии W Текст еще не записан на устройство перекачки L Загрузка в действии K Заблокирован w Запрошен (флаг L включен)

DADDR Адрес на диске при перекачке данных, кратный байтам BSIZE.

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

SIZE Размер текстового сегмента, измеренный в блоках разрешающей способности управления памятью.

IPTR Размещение ядра соответствующего узла.

CNT Число процессов, использующих этот текстовый сегмент.

CCNT Число процессов в ядре, использующих этот текстовый сегмент.


- p Печатает таблицу процессов для действующих процессов со следующими заголовками:

LOC Центральное расположение входа в эту таблицу.

S Состояние выполнения, закодированное следующим образом:

0 Нет процесса 1 Ожидание некоторого события 3 Доступен для выполнения 4 Создается 5 Завершается 6 Остановлен программой трассировки

F Разнообразные переменные состояния следующие:

01 Загружен 02 Процесс планировщика 04 Заблокирован 010 Откачан 020 Трассирован 040 Использован 0100 Заблокирован командой lock(2).

PRI Приоритет в расписании, см. команду .

SIGNAL Принятые сигналы (сигналы 1-16, закодированные в битах 0-15).

UID Реальный пользовательский идентификатор ID.

TIM Время резидентной части в секундах, свыше 127, кодируется, как 127.

CPU Взвешенное интегральное время центрального процессора (CPU) для планировщика.

NI Предпочтительный уровень, см. команду .

PGRP Процессовый номер маршрута группы процесса (открывающий управляющий терминал).

PID Процессовый номер ID.

PPID Процессовый ID, порождающего процесса.

ADDR Если процесс размещен в ядре, то физический адрес области "u-area" данного процесса, измеренный в узлах разрешающей способности управления памяти. Если процесс откачен, то позиция в области перекачки измеряется кратно байтам BSIZE.

WCHAN Номер канала ожидания ожидающего процесса.

LINK Указатель связи в списке выполняемых процессов.

TEXTP Если текст чист, то указатель на место входа в текстовую таблицу (только 286).

INODP Указатель на размещение разделенного узла (только 386).

CLKT Обратный счетчик для команды , измеренный в секундах.

-u ubase

Печатает информацию о пользовательском процессе. Ubase - это шестнадцатеричный адрес данного процесса в главной памяти. Адрес может быть получен с помощью длинного (long) листинга (опция -l) команды .

-c corefile

Используйте файл corefile вместо /dev/kmem.

-n namelist

Используйте файл namelist в качестве альтернативного списка имен вместо /xenix.

-f Печатает таблицу открытых файлов со следующими заголовками:

LOC Центральное расположение входа в эту таблицу.

FLAGS Разнообразные переменные состояния:

R Открыт для чтения W Открыт для записи P Программный канал

CNT Количество процессов, которые знают этот открытый файл.

INO Адрес входа в таблицу узлов для данного файла.

OFFS Смещение данного файла, см. команду .

ФАЙЛЫ

/xenix Список имен /dev/mem Источник таблиц по умолчанию

СМ. ТАКЖЕ

, , filesystem(3)









PTRACE(2)


НАЗВАНИЕ

ptrace - трассировка процесса

СИНТАКСИС

int ptrace (request, pid, addr, data) int request, pid, addr, data;

ОПИСАНИЕ

Системный вызов ptrace предоставляет средства, используя которые родительский процесс может управлять выполнением порожденного процесса. В первую очередь этот вызов используется для реализации отладчиков с точками прерывания [см. ]. Порожденный процесс работает обычным образом, пока он не получает сигнал [см. список в ], после чего он приостанавливается, а его родительский процесс получает информацию об этом через . Пока порожденный процесс приостановлен, родительский процесс может читать и изменять образ его памяти, вызывая ptrace. Кроме того, родительский процесс может либо уничтожить порожденный процесс, либо возобновить его выполнение, возможно удалив сигнал, вызвавший остановку.

Аргумент request определяет действия, которые должен выполнить системный вызов ptrace. Возможны следующие действия:

0 Вызов с этим значением request должен быть сделан порожденным процессом, если предполагается его трассировка родительским процессом. Этот вызов устанавливает у порожденного процесса флаг трассировки, вследствии чего порожденный процесс при получении сигнала останавливается, не отрабатывая функции, указанной аргументом системного вызова signal [см. ]. Аргументы pid, addr, и data игнорируются и возвращаемое значение не определено. Если родительский процесс не собирается трассировать порожденный процесс, результаты будут непредсказуемыми. Вызовы с остальными значениями аргумента request могут использоваться только родительским процессом. Для всех этих вызовов аргумент pid обозначает идентификатор по рожденного процесса. Вызовы имеют смысл, только когда порожденный процесс приостановлен. 1,2 При этих значениях request родительскому процессу возвращается слово по адресу addr в адресном пространстве порожденного процесса. Оба значения request приводят к одинаковым результатам. Игнорируется аргумент data. 3 Родительскому процессу возвращается слово из структуры u типа user, находящейся в системном адресном пространстве [см. <sys/user.h>] и соответствующей порожденному процессу. Аргумент addr задает смещение слова относительно начала структуры. Аргумент data игнорируется. Вызов завершается неудачей, если указанное слово находится за преде лами этой структуры, в этом случае родительскому процессу возвращается -1, а переменной родительского процесса errno присваивается значение EIO. 4,5 При этих значениях request аргумент data записывается по адресу addr в адресном пространстве порожденного процесса. Оба значения request приводят к одинаковым результатам. При успешном завершении возвращается результат, равный записанному значению; в противном случае родительскому процессу возвращается -1, а переменной родительского процесса errno присваивается значение EIO. 6 Это значение аргумента request позволяет изменить некоторые поля в структуре u типа user, соответствующей порожденному процессу. Значение аргумента data записывается в слово, смещение которого от начала структуры u задается аргументом addr. Могут быть изменены лишь следующие компоненты:

Регистры общего назначения. Признаки результата в слове состояния процессора.

Поле u_ar0 структуры u содержит адрес массива, в котором сохраняются регистры, как общего назначения, так и специальные. Чтобы вычислить смещение этого массива от начала структуры, нужно в файле /unix найти имя u, извлечь адрес структуры и затем вычесть его из значения поля u_ar0. Порядок расположения регистров в упомянутом массиве описан во включаемом файле <sys/reg.h>.

7 Вызов с этим значением request служит для возобновления работы порожденного процесса. Если аргумент data равен 0, то до возобновления работы удаляются все полученные, но не обработанные сигналы, включая тот, который вызвал приостановку порожденного процесса. Если аргумент data равен корректному номеру сигнала, то порожденный процесс возобновляет работу так, как будто он получил этот сигнал, а все остальные полученные сигналы удаляются. Аргумент addr задает адрес, с которого возобновляется выполнение порожденного процесса. Если значение addr равно 1, выполнение порожденного процесса возобновляется с места приостановки. При успешном завершении возвращается результат, равный значению аргумента data. Вызов завершается неудачей, если аргумент data не равен 0 или корректному номеру сигнала, в этом случае родительскому процессу возвращается -1, а переменной родительского процесса errno присваивается значение EIO. 8 Вызов с этим значением request приводит к уничтожению порожденного процесса с той же последовательностью действий, что и . 9 Вызов с этим значением request устанавливает бит трассировки в слове состояния процессора порожденного процесса и затем совершает действия, описанные для значения request, равного 7. Установленный бит трассировки вызывает прерывания по выполнению каждой машинной команды, что позволяет эффективно трассировать порожденный процесс по одной команде.

Чтобы предупредить возможный обман, вызов ptrace подавляет возможность переустанавливать действующий идентификатор пользователя при последующих вызовах . Если трассируемый процесс вызывает exec, то он до выполнения первой команды из нового выполняемого файла останавливается, сообщая о получении сигнала SIGTRAP.

Системный вызов ptrace завершается неудачей, если выполнено хотя бы одно из следующих условий:

[EIO] Некорректный параметр request. [ESRCH] Отсутствует порожденный процесс с идентификатором, равным pid, или он не вызывал ptrace с параметром request, равным 0.

СМ. ТАКЖЕ

, , , , .



PTX(1)


НАЗВАНИЕ

ptx - упорядоченный предметный указатель

СИНТАКСИС

ptx [опции] [ввод [вывод]]

ОПИСАНИЕ

Команда ptx создает файл вывод, который можно обработать text formatter'ом и получить упорядоченный предметный указатель для файла ввод (по умолчанию - стандартный вывод и стандартный ввод). Выполнение делится на три фазы: на первой происходит упорядочение, когда для каждого ключевого слова на входной строке генерируется одна строка. Ключевые слова циклическим сдвигом ставятся в начало строк. Затем строки файла упорядочиваются. Наконец, в упорядоченных строках опять делается циклический сдвиг, так что ключевые слова оказываются на прежних местах в строке. Вывод ptx имеет вид:

.xx "хвост" "до ключа" "ключ и за ним" "голова"

где предполагается, что .xx - это макро nroff или troff(1), обеспечиваемая пользователем либо пакетом ??????? макро mptx(5). Поля до ключа и ключ и за ним содержат ??? mptx(5) - сс максимально возможную при печати часть строки вокруг ключевого слова. Хвост и голова, по крайней мере одна из которых - пустая строка, являются окружающими частями строки, достаточно малыми чтобы поместиться в свободном месте строки.

Можно использовать следующие опции:

-f Не различать большие и маленькие буквы при упорядочивании строк. -t Подготовить вывод для фотопечати. -w n Использовать следующий аргумент, n, как длину строки в выводе. По умолчанию в строке 72 символа для nroff и 100 для troff. -g n Использовать следующий аргумент, n, как длину промежутка, который ptx оставляет между четырьмя частями строки при ее окончательном выводе. По умолчанию промежуток - 3 пробела. Реально не 3, а 1, а опция работает очень странно. -o only

Использовать в качестве ключевых только слова из файла с именем only. -i ignore

Не использовать в качестве ключевых слова, находящиеся в файле с именем ignore. Если опции -i и -o опущены, в качестве файла ignore используется файл /usr/lib/ejgn. -b break

Использовать символы из файла с именем break в качестве разделителей. Символ табуляции, перевод строки и пробелы используются в качестве разделителей всегда. -r Использовать в качестве указателя ссылки (например, ссылка на страницу или главу), начальные непробелы на каждой строке, отделенные от текста строки. Выводить указатель ссылки в 5-е поле выводимой строки


Указатель для этого руководства был изготовлен с помощью ptx.

ФАЙЛЫ

/bin/sort /usr/lib/eign /usr/lib/tmac/tmac.ptx

СМ. ТАКЖЕ

?????? , troff(1), mm(5), mptx(5) в руководстве UNIX ????? System V DOCUMENTER'S WORKBENCH Software, Introduction and Reference Manual (307-150, Issue 2).

ПРЕДОСТЕРЕЖЕНИЯ

В исходной версии системы UNIX 5.3 программа ptx отсутствовала. При обработке текста важно, чтобы в качестве разделителей были указаны такие знаки как точка, запятая и т.д. По-видимому, при обработке текстов опция -r является практически обязательной.

СЮРПРИЗЫ

Счетчики длины строк не учитывают наложения или пропорционального разграничения. Строки, содержащие тильды (~), портятся, так как этот символ является для ptx служебным. Опция -g не выдерживает точно ширину строки. Опция -w работает очень странно.









PUTC(3S)


НАЗВАНИЕ

putc, putchar, fputc, putw - запись в поток символа или машинного слова

СИНТАКСИС

#include <stdio.h>

int putc (c, stream) char c; FILE *stream;

int putchar (c) char c;

int fputc (c, stream) char c; FILE *stream;

int putw (w, stream) int w; FILE *stream;

ОПИСАНИЕ

Макрос putc записывает символ c в поток вывода stream (в позицию, задаваемую указателем файла, если он определен). Макрос putchar (c) определяется как putc (c, stdout).

Функция fputc выполняет те же действия, что и макрос putc; она работает медленнее, чем putc, но занимает меньше пространства на каждое использование. Кроме того, функцию можно передавать в качестве аргумента.

Функция putw выводит машинное слово w (значение типа int) в поток вывода stream (в позицию, задаваемую указателем файла, если он определен). Размер слова машинно-зависим. Для данной системы он составляет 32 бита. Функция putw не требует и не выполняет выравнивание по границе слова в выходном файле.

СМ. ТАКЖЕ

, , , , , , , .

ДИАГНОСТИКА

В случае успеха описанные функции (кроме putw) возвращают выводимое значение. Функция putw возвращает ferror (stream). При неудаче они возвращают константу EOF. Ошибка возникает, если файл stream не открыт на запись или, если файл вывода не может расти. Так как EOF - допустимое целое значение, для распознавания ошибок putw нужно пользоваться функцией .

ОГРАНИЧЕНИЯ

Поскольку putc - макрос, аргумент stream вычисляется многократно, что существенно при наличии побочных эффектов. В частности, вызов putc (c, *f++) ведет себя нежелательным образом. В таких случаях следует использовать fputc.

Из-за возможных различий в длине слова и порядке байт файлы, сформированные при помощи putw, являются машинно-зависимыми и могут не быть прочитаны при помощи getw на другом процессоре.



PUTENV(3C)


НАЗВАНИЕ

putenv - изменение или расширение окружения

СИНТАКСИС

int putenv (string) char *string;

ОПИСАНИЕ

Аргумент string указывает на цепочку символов вида имя=значение. Функция putenv используется для присвоения переменной окружения имя заданного значения, при этом изменяется существующая переменная или создается новая. В любом случае цепочка, указанная аргументом string, становится частью окружения; таким образом, изменение этой цепочки приводит к изменению окружения.

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

СМ. ТАКЖЕ

, , , .

ДИАГНОСТИКА

Функция putenv возвращает ненулевое значение, если попытка получить дополнительное пространство памяти [посредством ] для расширенного окружения окончилась неудачей. Иначе возвращается ноль.

ПРЕДОСТЕРЕЖЕНИЯ

Функция putenv работает с окружением, указанным с помощью environ, и может быть использована вместе с функцией getenv. Однако envp (третий аргумент main) не изменяется.

При расширении окружения используется функция .

После вызова функции putenv алфавитная упорядоченность переменных окружения вообще говоря, нарушается.

Потенциальной ошибкой является вызов putenv с автоматической переменной в качестве аргумента, и последующий выход из вызывающей функции в то время, когда string еще является частью окружения.



PUTMSG(2)


НАЗВАНИЕ

putmsg - посылка сообщения в поток, ассоциированный с псевдоустройством

СИНТАКСИС

#include <stropts.h>

int putmsg (fd, ctlptr, dataptr, flags) int fd; struct strbuf *ctlptr; struct strbuf *dataptr; int flags;

ОПИСАНИЕ

Системный вызов putmsg создает сообщение [см. ] по содержимому буферов, указанных пользователем, и посылает сообщение в поток. Сообщение может состоять из двух частей: области данных и управляющей области, которые берутся из разных буферов (см. ниже). Семантика каждой части определяется модулем потока, который получает это сообщение.

Аргумент fd задает дескриптор файла, ассоциированный с открытым потоком.

Аргументы ctlptr и dataptr - это указатели на структуру типа strbuf, содержащую следующие элементы:

int maxlen; /* Максимальная длина буфера */ int len; /* Длина извлеченной информации */ char *buf; /* Указатель на буфер */

Аргумент ctlptr указывает на структуру, описывающую управляющую область сообщения, если таковая имеется. Компонент buf указывает на буфер, в котором размещается управляющая информация, а len задает количество байт, которое должно быть послано. Поле maxlen в системном вызове putmsg не используется [см. ]. Таким же образом dataptr задает область данных, если таковая имеется, которые должны быть включены в сообщение.

Аргумент flags может принимать два значения: 0 или RS_HIPRI (см. ниже).

Чтобы послать данные в сообщении, аргумент dataptr должен быть отличен от NULL, а значение компонента len должно быть неотрицательным. Чтобы послать управляющую информацию, соответствующие значения должны быть установлены для ctlptr. Область данных (управляющая область) не будет послана, если аргумент dataptr (ctlptr) равен NULL, или значение компонента len для dataptr (ctlptr) равно -1.

Если задана управляющая область и значение переменной, на которую указывает аргумент flags, равно RS_HIPRI, посылается приоритетное сообщение. Если значение по адресу flags равно 0, посылается неприоритетное сообщение. Если не указана управляющая область и значение по адресу flags равно RS_HIPRI, системный вызов putmsg завершается неудачей, а переменная errno получает значение EINVAL. Если не указана ни управляющая область ни область данных и значение по адресу flags равно 0, сообщение не посылается и возвращается нулевой результат.


В случае посылки неприоритетных сообщений процесс, вызвавший putmsg, откладывается, если очередь потока на запись полна вследствие внутренних условий прохождения сообщений. Для приоритетных сообщений откладывания по этой причине не происходит. Для неприоритетных сообщений откладывания также не происходит, если очередь потока на запись полна, но установлен флаг O_NDELAY; системный вызов завершается неудачей, присваивая errno значение EAGAIN.

Кроме того процесс, вызвавший putmsg, откладывается, ожидая доступности достаточного числа блоков для сообщений в потоке (независимо от приоритетности и флага O_NDELAY), если при этом вызов не будет отвергнут из-за недостатка системных ресурсов. Сообщения по частям не посылаются.

Системный вызов putmsg завершается неудачей, если выполнено хотя бы одно из следующих условий:

[EAGAIN] Указано неприоритетное сообщение, установлен флаг O_NDELAY, а очередь потока на запись заполнена вследствие внутренних условий прохождения сообщений. [EAGAIN] Не удалось выделить буфера для посылаемого сообщения. [EBADF] Аргумент fd не является корректным дескриптором файла, открытого на запись. [EFAULT] Аргумент ctlptr, dataptr, или flags указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [EINVAL] Аргумент flags имеет некорректное значение, или задано значение RS_HIPRI, а управляющая область не указана. [EINVAL] Поток, на который ссылается fd, мультиплексируется. [ENOSTR] С дескриптором fd не ассоциирован поток. [ENXIO] Ниже по потоку произошло освобождение линии. [ERANGE] Размер области данных сообщения не попадает в интервал между минимальной и максимальной длинами пакета, заданными самым верхним модулем потока. Это значение также возвращается, если управляющая область или область данных имеют длины, превосходящие соответствующие максимумы, заданные при генерации системы.

Кроме того, системный вызов putmsg завершается неудачей, если, до обращения к putmsg, в истоке потока получено сообщение об ошибке псевдоустройства. В этом случае переменной errno присваивается значение, содержащееся в сообщении.

СМ. ТАКЖЕ

, , , , .

ДИАГНОСТИКА

При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.









PUTPWENT(3C)


НАЗВАНИЕ

putpwent - записать элемент файла паролей

СИНТАКСИС

#include <pwd.h>

int putpwent (p, f) struct passwd *p; FILE *f;

ОПИСАНИЕ

Функция putpwent является обратной к . Располагая указателем на структуру типа passwd, созданную getpwent (или getpwuid, или getpwnam), функция putpwent записывает строку в поток f, удовлетворяющий формату файла /etc/passwd.

СМ. ТАКЖЕ

.

ДИАГНОСТИКА

В случае ошибки функция putpwent выдает ненулевой результат; в противном случае возвращается 0.

ПРЕДОСТЕРЕЖЕНИЯ

Описанные функции используют стандартный пакет ввода/ вывода, что приводит к неожиданному увеличению размера программ, не использующих стандартный ввод/вывод.



PUTS(3S)


НАЗВАНИЕ

puts, fputs - запись цепочки символов в поток

СИНТАКСИС

#include <stdio.h>

int puts (s) char *s;

int fputs (s, stream) char *s; FILE *stream;

ОПИСАНИЕ

Функция puts записывает ограниченную нулевым байтом цепочку символов, заданную указателем s, в поток стандартного вывода stdout. За цепочкой добавляется символ перевода строки.

Функция fputs выводит ограниченную нулевым байтом цепочку символов, заданную указателем s, в поток вывода stream. Перевод строки не добавляется.

Ни одна из этих функций не выводит ограничивающий цепочку нулевой байт.

СМ. ТАКЖЕ

, , , , , .

ДИАГНОСТИКА

Обе функции в случае ошибки возвращают значение EOF. Это происходит, если функция пытается писать в файл, который не был открыт на запись.



PWADMIN(8)


НАЗВАНИЕ

pwadmin - служит для административного обслуживания "возрастной" информации пароля.

СИНТАКСИС

pwadmin [-min weeks -max weeks] options

ОПИСАНИЕ

pwadmin используется для контроля и модификации "возрастной" информации в файле паролей. С этой командой могут использоваться следующие опции:

-d user Высвечивает "возрастную" информацию паролей. -f user Заставляет пользователя менять пароль при очередном входе в систему. -c user Не дает пользователю изменить пароль. -a user Активизирует "возрастной" контроль пароля для данного пользователя. Эта опция устанавливает минимальное количество недель, которое должно пройти, прежде чем пользователь сможет изменить свой пароль, и максимальное количество недель, в течение которого пользователь может держать свой пароль без изменения. Эти величины задаются переменными MINWEEKS и MAXWEEKS в файле /etc/default/passwd. Если этот файл не найден, или данные величины выходят за пределы диапазона 0 - 63, то по умолчанию используются величины 2 и 4. -n user Снимает "возрастной" контроль пароля. -min weeks Активизирует "возрастной" контроль пароля и устанавливает минимальное количество недель weeks, в течение которого пользователь не может изменять свой пароль.(Это удерживает пользователя от слишком быстрой замены нового пароля на старый.) -max weeks Активизирует "возрастной" контроль пароля и устанавливает количество недель weeks, в течение которого пользователь может держать свой пароль без изменений.

ФАЙЛЫ

/etc/paaswd /etc/default/passwd

СМ. ТАКЖЕ

, passwd(3)

ПРИМЕЧАНИЯ

Пользователь не должен пытаться установить новый пароль принудительно, устанавливая обе величины -min и -max в нуль. Для этого используйте опцию -f.

Пользователь не должен пытаться предотвратить очередное изменение пароля, устанавливая значение величины -min, больше чем -max. Для этого используйте опцию -c.



PWCHECK(1)


ИМЯ

pwcheck - Проверяет файл паролей.

СИНТАКСИС

pwcheck [file]

ОПИСАНИЕ

Команда pwcheck просматривает файл паролей и выявляет любые противоречия. Проверяется также законность количества полей, имени входа в систему, пользовательского идентификатора ID, группового идентификатора ID, кроме того выясняется, существует ли каталог вхождения в систему и необязательное имя программы. По умолчанию файл паролей - это /etc/passwd.

ФАЙЛЫ

/etc/passwd

СМ. ТАКЖЕ

, group(3), passwd(3)



PWCK(1M)


НАЗВАНИЕ

pwck, grpck - проверка файлов паролей и групп

СИНТАКСИС

/etc/pwck [файл_паролей] /etc/grpck [файл_групп]

ОПИСАНИЕ

Утилита pwck просматривает файл_паролей (по умолчанию /etc/passwd) и выводит в стандартный протокол сообщения обо всех некорректностях. Проверяется число полей, входное имя, идентификатор пользователя, идентификатор группы, а также существование начального каталога и интерпретатора команд.

Утилита grpck контролирует файл_групп (по умолчанию /etc/group). Проверяется число полей, имя группы, идентификатор группы, а также то, что все перечисленные входные имена зарегистрированы в файле паролей. Выдаются сообщения и о пустых списках пользователей.

ФАЙЛЫ

/etc/group /etc/passwd

СМ. ТАКЖЕ

, в Справочнике программиста.



PWD(1)


НАЗВАНИЕ

pwd - выдача имени текущего каталога

СИНТАКСИС

pwd

ОПИСАНИЕ

Команда pwd выдает имя текущего (рабочего) каталога.

СМ. ТАКЖЕ

.

ДИАГНОСТИКА

Сообщения "Cannot open ..." и "Read error in ..." могут означать, что нарушена файловая система. О нарушении необходимо сообщить администратору системы



QSORT(3C)


НАЗВАНИЕ

qsort - быстрая сортировка

СИНТАКСИС

void qsort ((char *) base, nel, sizeof (*base), compar) unsigned int nel; int (*compar) ( );

ОПИСАНИЕ

Процедура qsort реализует алгоритм быстрой сортировки таблицы данных на своем месте.

Аргумент base является указателем на начало таблицы. Nel - число элементов в таблице. Compar - функция сравнения, аргументами которой при вызове служат два указателя на сравниваемые элементы. В соответствии с тем, какое целое число она возвращает: меньшее нуля, равное нулю или большее нуля, первый аргумент считается меньшим, равным или большим по отношению ко второму.

ПРИМЕЧАНИЯ

Указатель на начало таблицы должен иметь тип "указатель на элемент" и преобразовываться к типу "указатель на символ".

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

Порядок, в каком окажутся после сортировки два элемента, считающиеся равными при сравнении, непредсказуем.

СМ. ТАКЖЕ

, , .

в Справочнике пользователя



QUOT(1)


ИМЯ

quot - Выдает краткий список владельцев файловой системы.

СИНТАКСИС

quot [ options ] ... [ filesystem ]

ОПИСАНИЕ

Команда quot печатает количество блоков в поименованной файловой системе (аргумент filesystem), принадлежащих каждому пользователю на текущий момент. Если не указан аргумент filesystem, то проверяются файловые системы, заданные в файле /etc/mnttab.

ОПЦИИ

-n Обрабатывает стандартный файл ввода. Эта опция делает возможным выполнение списка всех файлов и их владельцев с помощью следующей команды:

ncheck filesystem | sort +On | quot -n filesystem

-c Печатает три колонки, содержащие размер файла в блоках, количество файлов такого размера и суммарное общее количество блоков в файле такого же или меньшего размера. Данные по файлам , размер которых превышает 499 блоков, включены в колонки файлов с размером точно 499. -f Печатает количество файлов, а также объем памяти, принадлежащий каждому пользователю.

ФАЙЛЫ

/etc/passwd Содержит имена пользователей /etc/mnttab Содержит список установленных файловых систем

СМ. ТАКЖЕ

, , , machine(5)

ЗАМЕЧАНИЯ

Пустые пространства в файлах учитываются как фактически занятые.

Считается, что блоки содержат по 512 байтов. В файловых системах, которые используют блоки по 1024 байта, о файле в 26 байтов сообщается, как об использующем 2 блока, т.к. он использует один блок в 1024 байта или два блока по 512 байтов. Смотрите команду machine(1) или используйте команду для определения размера файловой системы в блоках.

Смотрите также раздел ЗАМЕЧАНИЯ после команды .



QUOTA(1) FreeBSD Reference Manual


ИМЯ

quota - показывает лимит дискового пространства для пользователей

СИНТАКСИС

quota [-g] [-u] [-v | -q] quota [-u] [-v | -q] user quota [-g] [-v | -q] group

ОПИСАНИЕ

Команда quota показывает установленные лимиты по использованию дискового пространства для пользователей. Только привилегированный пользователь может посмотреть установленные квоты для конкретных пользователей.

ОПЦИИ

-g Печатает ограничения для группы, в которую входит данный пользователь. -v показывает лимиты дискового пространства для пользователей всех монтированных файловых систем, если квоты там включены. -q показывает более сжатое сообщение, сожержащее только информацию о файловой системе, на которую имеются ограничения.

Указзание ключей -u и -g вместе показывает ограничения для пользователя и для группы, к которой он принадлежит.

ФАЙЛЫ

quota.user quota.group /etc/fstab

ИСТОРИЯ

Команда quota появилась в 4.2BSD.

СМ. ТАКЖЕ

quotactl(2), fstab(5), edquota(8), quotacheck(8), quotaon(8), repquota(8), rpc.rquotad(8)