Man pages на русском

         

A.OUT(5) XENIX System V (1 янвapя 1989)


ИМЯ

a.out - Фopмaт фaйлa, пoлyчaeмoгo в peзyльтaтe paбoты пpoгpaмм acceмблиpoвaния и peдaктopa cвязeй.

ОПИСАНИЕ

A.out являeтcя peзyльтиpyющим фaйлoм пocлe зaвepшeния paбoты пpoгpaмм acceмблepa masm и peдaктopa cвязeй ld. Ecли в пpoцecce paбoты кaждoй из этиx пpoгpaмм нe были oбнapyжeны oшибки или нeoпpeдeлeнныe глoбaльныe пepeмeнныe, бyдeт coздaн фaйл fa.out.

Фopмaт фaйлa a.out, нaзывaeмый тaкжe x.out или ceгмeнтиpoвaнный x.out, oпpeдeляeтcя фaйлaми /usr/include/a.out.h и /usr/include/sys/relsym.h. Фaйл a.out имeeт cлeдyющиe ocнoвныe чacти:

Зaгoлoвoк Дoпoлнитeльный зaгoлoвoк Taблицa ceгмeнтa фaйлa (для ceгмeнтиpoвaнныx фopмaтoв) Ceгмeнты (Teкcт, дaнныe, cимвoлы и cвeдкния для нacтpoйки)

B ceгмeнтиpoвaннoм фopмaтe мoгyт cyщecтвoвaть нecкoлькo ceгмeнтoв тeкcтoв и дaнныx, в зaвиcимocти oт мoдeли пaмяти пpoгpaммы. Ceгмeнты в фaйлe нaчинaютcя c aдpeca, кpaтнoгo paзмepy cтpaницы фaйлa (512 бaйт).

ФOPМAТ

/* *Ocнoвнoй и дoпoлнитeльный зaгoлoвoк cтpyктyp. *Для ceгмeтиpoвaннoгo фopмaтa x.out (XE_SEG): * 1)пoля, мapкиpoвaнныe (s) дoлжны * coдepжaть cyммy вcex xs_psize, ecли oбpaз нaxoдитcя нa диcкe * или xs_vsize для oбpaзa пaмяти. * 2)coдepжимoe oблacтeй, мapкиpoвaнныx * (u) нeoпpeдeлeнo. */

struct xexec{ /*зaгoлoвoк x.out*/ unsigned short x_magic; /*мaгичecкoe чиcлo*/ unsigned short x_ext; /*paзмep дoпoлнитeльнoгo зaгoлoвкa*/ long X-Text; /*paзмep ceгмeнтa тeкcтa (s)*/ long x_data; /*paзмep инициaлизиpoвaнныx дaнныx (s)*/ long x_bss; /*paзмep нeинициaлизиpoвaнныx дaнныx (s)*/ long syms; /*paзмep тaблицы cимвoлoв (s)*/ long x_reloc; /*длинa тaблицы пepeмeщeний (s)*/ long x_entry; /*мaшиннo зaвиcимaя тoчкa вxoдa*/ char x_cpu; /*тип пpoцeccopa и пopядoк бaйт/cлoвo*/ char x_relsym; /*фopмт пepeмeщeний и cимвoлoв (u)*/ unsigned short x_renv; /* cpeдa выпoлнeния*/ };

struct xext { /* дoпoлнитeльный зaгoлoвoк x.out */ long xe_trsize; /* paзмep тaблицы пepeмeщeний тeкcтa (s) */ long xe_drsize; /* paзмep тaблицы пepeмeщeний дaнныx (s) */ long xe_tbase; /* бaзa пepeмeщaeмoгo тeкcтa(u) */ long xe_dbase; /* бaзa пepeмeщaeмыx дaнныx(u) */ long xe_stksize; /* paзмep cтeкa (ecли XE_FS ycтaнoвлeн) */


/* cлeдyющиe дaлee элeмeнты дoлжны быть пpeдcтaвлeны ecли XE_SEG ycтaнoвлeн */

long xe_segpos; /* пoлoжeниe тaблицы ceгмeнтoв */ long xe_segsize; /* paзмep тaблицы ceгмeнтoв */ long xe_mdtpos; /* мaшиннo зaвиcимoe пoлoжeниe */ long xe_mdtsize; /* мaшиннo зaвиcимый paзмep тaблицы */ char xe_mdttype; /* мaшиннo зaвиcимый тип тaблицы */ char xe_pagesize; /* paзмep cтpaницы фaйлa, кpaтнoe 512 */ char xe_ostype; /* тип oпepaциoннoй cиcтeмы */ char xe_osvers; /* вepcия oпepaциoннoй cиcтeмы */ unsigned short xe_eseg; /*ceгмeнт вxoдa, зaвиcимый oт aппapaтypы */ unsigned short xe_sres; /* peзepвиpoвaн */ };

struct xseg { /* тaблицa ceгмeнтoв x.out */ unsigned short xs_type; /*тип ceгмeнтa */ unsigned short xs_attr; /*aтpибyты ceгмeнтa */ unsigned short xs_seg; /*нoмep ceгмeнтa */ char xs_align; /* лoгapифм пo ocнoвaнию 2 oт выpaвнивaния */ char xs_cres; /* нeиcпoльзyeтcя*/ long xs_filpos; /* пoлoжeниe фaйлa */ long xs_psize; /* физичecкий paзмep (в фaйлe) */ long xs_vsize; /* виpтyaльный paзмep (in core) */ long xs_rbase; /* aдpec/cмeщeниe бaзы пepeмeщeния */ unsigned short xs_noff; /* cмeщeниe дo имeни ceгмнтa в тaблицe ceгмeнтoв ceгмeнтa */ unsigned short xs_sres; /* нeиcпoльзyeтcя*/ long xs_lres; /* нeиcпoльзyeтcя */ };

struct xiter { /* зaпиcь пoвтopeний x.out */ long xi_size; /* source byte count */ long xi_rep; /* replication count */ long xi_offset; /* destination offset in segment */ };

struct xlist { /* xlist cтpyктypa для . */ unsigned short xl_type; /* тип cимвoлa */ unsigned short xl_seg; /* индeкc тaблицы ceгмeнтa фaйлa */ long xl_value; /* вeличинa cимвoлa */ char *xl_name; /* yкaзaтeль нa имя, oгpaничeннoe нyлeм */ };

struct aexec { /* зaгoлoвoк a.out */ unsigned short xa_magic; /* мaгичecкoe чиcлo */ unsigned short xa_text; /* paзмep ceгмeнтa тeкcтa*/ unsigned short xa_data; /* paзмep инициaлизиpoвaнныx дaнныx */ unsigned short xa_bss; /* paзмep нeинициaлизиpoвaнныx дaнныx */ unsigned short xa_syms; /* paзмep тaблицы cимвoлoв */ unsigned short xa_entry; /* тoчкa вxoдa */ unsigned short xa_unused; /* нe иcпoльзyeтcя */ unsigned short xa_flag; /* флaг oтcyтcвия тaблицы имeн */ };



struct nlist { /* nlist cтpyктypa для . */ char n_name[8]; /* имя cимвoлa */ int n_type; /* флaг типa*/ unsigned n_value; /* вeличинa */ };

struct bexec { /* зaгoлoвoк b.out */ long xb_magic; /* мaгичecкoe чиcлo */ long xb_text; /* paзмep ceгмeнтa тeкcтa*/ long xb_data; /* paзмep ceнмeнтa дaнныx*/ long xb_bss; /* paзмep нeинициaлизиpoвaнныx дaнныx */ long xb_syms; /* paзмep тaблицы cимвoлoв*/ long xb_trsize; /* paзмep тaблицы пepeмeщeния тeкcтa*/ long xb_drsize; /* paзмep тaблицы пepeмeщeния дaнныx*/ long xb_entry; /* тoчкa вxoдa*/ };

СМ. ТАКЖЕ



, , , , xlist(1).

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


ИМЯ

a64l, l64a - выпoлняют пpeoбpaзoвaния мeждy длинными цeлыми и 64-pичными чиcлaми

СИНТАКСИС

long a64l (s) char *s;

char *l64a (l) long l;

ОПИСАНИЕ

Эти фyнкции пoзвoляют paбoтaть c 64-pичными чиcлaми. B тaкoй cиcтeмe cчиcлeния длинныe цeлыe мoгyт быть пpeдcтaвлeны нe бoлee чeм 6-cимвoльными чиcлaми; кaждый cимвoл являeтcя "цифpoй" 64-pичнoгo пpeдcтaвлeния.

B кaчecтвe цифp иcпoльзyютcя: . для 0, / для 1, c 0 пo 9 для 2-11, c A пo Z для 12-37, c a пo z для 38-63.

a64l пoлyчaeт yкaзaтeль нa 64-pичнoe чиcлo, зaвepшaeмoe cимвoлoм NUL, и вoзвpaщaeт cooтвeтcтвyющee eмy длиннoe цeлoe. l64a пoлyчaeт длиннoe цeлoe в кaчecтвe apгyмeнтa и вoзвpaщaeт yкaзaтeль нa cooтвeтcтвyющee 64-pичнoe пpeдcтaвлeниe.

ЗАМЕЧАНИЯ

Знaчeниe, вoзвpaщaeмoe l64a, yкaзывaeт cтaтичecкyю oблacть пaмяти, coдepжимoe кoтopoй пepeзaпиcывaeтcя oчepeдным вызoвoм.



ABORT(3C)


НАЗВАНИЕ

abort - аварийное завершение процесса

СИНТАКСИС

int abort ( )

ОПИСАНИЕ

Функция abort работает так же, как системный вызов , но вместо просто выхода (завершения процесса) abort посылает сигнал SIGABRT (6) вызывающему процессу. Если сигнал SIGABRT не перехватывается и не игнорируется, то прежде, чем он будет послан, выталкиваются все буфера, связанные со стандартным пакетом ввода/вывода , и порождается файл с образом памяти.

Функция abort возвращает значение системного вызова .

СМ. ТАКЖЕ

, , .

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

ДИАГНОСТИКА

Если сигнал SIGABRT не перехватывается и не игнорируется, и имеется право на запись в текущий каталог, то порождается файл с образом памяти и средствами shell'а выдается сообщение "abort - core dumped".



ABS(3C)


НАЗВАНИЕ

abs - вычисление абсолютной величины

СИНТАКСИС

int abs (i) int i;

ОПИСАНИЕ

Функция abs возвращает абсолютную величину указанного в обращении к ней целочисленного аргумента.

СМ. ТАКЖЕ

.

СЮРПРИЗЫ

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



ACCEPT(1M)


НАЗВАНИЕ

accept, reject - разрешение или запрет запросов на печать

СИНТАКСИС

/usr/lib/accept адресат ... /usr/lib/reject [-r [причина]] адресат ...

ОПИСАНИЕ

Команда accept разрешает команде удовлетворять запросы, относящиеся к указанным адресатам. Адресатом может быть либо строчный принтер, либо класс принтеров. Для определения состояния адресатов применяется команда .

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

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

ФАЙЛЫ

/usr/spool/lp/*

СМ. ТАКЖЕ

, lpshed(1M).

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



ACCESS(2)


НАЗВАНИЕ

access - проверка доступности файла

СИНТАКСИС

int access (path, amode) char *path; int amode;

ОПИСАНИЕ

Аргумент path является указателем на маршрутное имя файла. Системный вызов access проверяет доступность указанного файла в соответствии с битным шаблоном, содержащимся в аргументе amode, используя реальные идентификаторы пользователя и группы вместо действующих идентификаторов. Шаблон задается как побитное ИЛИ следующих компонентов:

04 Доступен на чтение. 02 Доступен на запись. 01 Доступен на выполнение (поиск). 00 Файл существует.

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

[ENOTDIR] Компонент маршрута не является каталогом. [ENOENT] Проверяется право на чтение, запись или выполнение (поиск) для пустого маршрутного имени. [ENOENT] Указанный файл не существует. [EACCES] Для компонента маршрута отсутствует право на поиск. [EROFS] Проверяется право на запись для файла, расположенного в файловой системе, доступной только на чтение. [ETXTBSY] Проверяется право на запись для файла, содержащего разделяемую секцию команд, которая в данный момент выполняется. [EACCES] Проверяется право на операции, запрещаемые режимом доступа к файлу. [EFAULT] Аргумент path указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет. [EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам.

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

СМ. ТАКЖЕ

, .

ДИАГНОСТИКА

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



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


ИМЯ

access - oпpeдeляeт вoзмoжнocть дocтyпa к фaйлy

СИНТАКСИС

int access (path, amode) char *path; int amode;

ОПИСАНИЕ

path yкaзывaeт имя фaйлa. access пpoвepяeт вoзмoжнocть дocтyпa к фaйлy в cooтвeтcтвии c битoвым шaблoнoм, зaдaнным в amode, иcпoльзyя peaльный пoльзoвaтeльcкий ID пpoцecca вмecтo эффeктивнoгo пoльзoвaтeльcкoгo ID и peaльный гpyппoвoй ID пpoцecca вмecтo эффeктивнoгo гpyппoвoгo ID. Битoвый шaблoн в amode cтpoитcя пyтeм cлoжeния cлeдyющиx знaчeний:

04 Пpoвepкa вoзмoжнocти чтeния. 02 Пpoвepкa вoзмoжнocти зaпиcи. 01 Пpoвepкa вoзмoжнocти выпoлнeния (пoиcкa). 00 Пpoвepкa cyщecтвoвaния фaйлa.

Иcкoмый дocтyп к фaйлy зaпpeщeн, ecли выпoлняeтcя xoтя бы oднo из cлeдyющиx ycлoвий:

[ENOTDIR] Koмпoнeнт пpeфикca имeни фaйлa нe являeтcя кaтaлoгoм. [ENOENT] Чтeниe, зaпиcь или выпoлнeниe (пoиcк) зaпpoшeны для пycтoгo имeни. [ENOENT] Укaзaнный фaйл нe cyщecтвyeт. [EACCES] Heт paзpeшeния нa пoиcк в кaкoм-либo кaтaлoгe из пpeфикca имeни фaйлa. [EROFS] Пpoвepкa вoзмoжнocти зaпиcи для фaйлa из фaйлoвoй cиcтeмы, пpeднaзнaчeннoй тoлькo для чтeния. [ETXTBSY] Пpoвepкa вoзмoжнocти зaпиcи в фaйл, кoтopый являeтcя чиcтoй пpoцeдypoй (c paздeляeмым ceгмeнтoм инcтpyкций) и в дaнный мoмeнт выпoлняeтcя. [EACCES] Биты paзpeшeния дocтyпa в кoдe зaщиты фaйлa зaпpeщaют иcкoмый дocтyп. [EFAULT] Aдpec, зaдaнный path выxoдит зa пpeдeлы aдpecнoгo пpocтpaнcтвa пpoцecca.

Ecли пpoцecc являeтcя влaдeльцeм фaйлa, access пpoвepяeт биты пpaв влaдeльцa в кoдe зaщиты фaйлa. Для члeнoв гpyппы пpoвepяютcя биты пpaв гpyппы в кoдe зaщиты. Для ocтaльныx пpoвepяютcя биты пpaв пpoчиx пpoцeccoв в кoдe зaщиты фaйлa.

Boзвpaщaeмoe знaчeниe

Ecли зaпpoшeнный дocтyп paзpeшeн, вoзвpaщaeтcя знaчeниe 0. Инaчe вoзвpaщaeтcя знaчeниe -1 и в errno зaнocитcя кoд oшибки.

СМ. ТАКЖЕ

chmod(3), stat(3)

ЗАМЕЧАНИЯ

Пpивилeгиpoвaнный пoльзoвaтeль (нaпpимep c имeнeм root) мoжeт имeть любoй дocтyп к фaйлy нeзaвиcимo oт кoдa зaщиты фaйлa.



ACCT(1M)


НАЗВАНИЕ

acct: acctdisk, acctdusg, accton, acctwtmp - обзор возможностей сбора статистики

СИНТАКСИС

/usr/lib/acct/acctdisk /usr/lib/acct/acctdusg [-u файл1] [-p файл2] /usr/lib/acct/accton [файл] /usr/lib/acct/acctwtmp "причина"

ОПИСАНИЕ

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

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

Сбор информации о процессах осуществляется ядром ОС UNIX. При завершении процесса в файл (обычно /usr/adm/ pacct) добавляется одна запись. Утилиты, описанные в , выдают сводную информацию; утилита служит для получения статистики использования команд. Сведения о процессах, завершившихся недавно, можно запросить с помощью команды .

Утилита acctmerg позволяет получить сводную информацию не только о процессах и о сеансах работы пользователей; она пригодна для обработки любых файлов, записи в которых имеют формат acct [см. ]. Генерируемая сводная информация состоит из записей типа tacct [см ]. Для форматирования и вывода сводок служит процедура prtacct [см. ].

Утилита acctdisk читает со стандартного ввода строки, содержащие идентификатор пользователя, его входное имя, количество дисковых блоков, преобразует эти строки в формат сводной информации tacct и выдает результаты на стандартный вывод. Обычно исходные данные для acctdisk готовятся с помощью утилит или acctdusg, а результаты используются при подготовке ежедневных сводок [см. dodisk и runacct в ].

Утилита acctdusg читает со стандартного ввода список полных маршрутных имен файлов (обычно - результат работы команды find / -print) и выдает сведения об использовании дискового пространства (включая косвенные блоки) различными пользователями. Если указана опция -u, то в файл1 помещаются записи о тех каталогах, которые не являются подкаталогами основных каталогов каких-либо пользователей, на основании чего можно выявить лиц, уклоняющихся от учета дискового пространства. Если указана опция -p, то файл2 рассматривается как файл со сведениями о пользователях; по умолчанию используется файл /etc/passwd [см. также ].


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

Утилита acctwtmp помещает на стандартный вывод записи в формате wtmp(4). Эти записи, получающие тип ACCOUNTING [см. ], содержат текущее время и цепочку символов, описывающую причину. Причина должна состоять не более чем из 11 символов, в число которых могут входить буквы, цифры, знаки $ и пробелы. Например, в процедуре остановки системы рекомендуется иметь строку вида

acctwtmp "file save" >> /etc/wtmp

ФАЙЛЫ

/etc/passwd

Файл со сведениями о пользователях. /usr/lib/acct

Каталог команд сбора статистики. /usr/adm/pacct

Текущий файл сбора статистики о процессах. /etc/wtmp

Файл со сведениями о времени начала/конца сеансов.

СМ. ТАКЖЕ

, , , , , , , .

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

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









ACCT(2)


НАЗВАНИЕ

acct - включение/выключение режима сбора статистической информации о процессах

СИНТАКСИС

int acct (path) char *path;

ОПИСАНИЕ

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

Аргумент path указывает на маршрутное имя файла сбора статистики. Формат файла сбора статистики описан в .

Режим сбора статистики включается, если значение аргумента path не равно 0, и не произошло ошибок во время выполнения системного вызова. Режим сбора статистики выключается, если значение path равно 0, и не произошло ошибок во время выполнения системного вызова.

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

[EPERM] Пользователь вызывающего процесса не является суперпользователем. [EBUSY] Попытка включить режим сбора статистики, когда он уже включен. [ENOTDIR] Компонент маршрутного префикса не является каталогом. [ENOENT] Компонент в маршрутном имени файла сбора статистики не существует. [EACCES] Файл, заданный аргументом path, не является обычным файлом. [EROFS] Указанный файл находится в файловой системе с доступом к файлам только по чтению. [EFAULT] Аргумент path задает недопустимый адрес.

СМ. ТАКЖЕ

, , .

ДИАГНОСТИКА

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



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


ИМЯ

acct - paзpeшaeт или зaпpeщaeт cбop инфopмaции o пpoцeccax

СИНТАКСИС

#include <sys/types.h>

int acct (path) char *path;

ОПИСАНИЕ

acct иcпoльзyeтcя для включeния или выключeния cбopa yчeтнoй инфopмaции o paбoтe пpoцeccoв. Ecли cбop инфopмaции включeн, пpи зaвepшeнии кaждoгo пpoцecca дeлaeтcя cooтвeтcтвyющaя зaпиcь в yчeтный фaйл. Пpoцecc зaвepшaeтcя либo c пoмoщью вызoвa exit, либo пpи пoлyчeнии cигнaлa, кoтopый oн нe игнopиpyeт и нe пepexвaтывaeт; cм. и signal(3). Для выпoлнeния cиcтeмнoгo вызoвa acct пpoцecc дoлжeн имeть пpивилeгиpoвaнный эффeктивный пoльзoвaтeльcкий ID.

path yкaзывaeт имя yчeтнoгo фaйлa. Фopмaт yчeтнoгo фaйлa пpивoдитcя в acct(5).

Cбop инфopмaции включaeтcя или выключaeтcя, ecли пpи выпoлнeнии cиcтeмнoгo вызoвa нe былo oбнapyжeнo oшибoк. Cбop включaeтcя, ecли path нe paвeн нyлю и выключaeтcя, ecли path paвeн нyлю.

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

[EPERM] Эффeктивный пoльзoвaтeльcкий ID пpoцecca нe пpивилeгиpoвaнный. [EBUSY] Пoпыткa включить yжe включeнный cбop инфopмaции. [ENOTDIR] Koмпoнeнт пpeфикca имeни фaйлa нe являeтcя кaтaлoгoм. [ENOENT] Koмпoнeнт имeни yчeтнoгo фaйлa нe cyщecтвyeт. [EACCES] Heт paзpeшeния нa пoиcк в кaкoм-либo кaтaлoгe из пpeфикca имeни фaйлa. [EACCES] Фaйл, зaдaнный имeнeм path, нe являeтcя oбычным фaйлoм. [EACCES] Koд зaщиты зaпpeщaeт дocтyп к yчeтнoмy фaйлy. [EACCES] Укaзaнный фaйл являeтcя кaтaлoгoм. [EROFS] Укaзaнный фaйл пpинaдлeжит фaйлoвoй cиcтeмe, пpeднaзнaчeннoй тoлькo для чтeния. [EFAULT] Aдpec, зaдaнный path, выxoдит зa пpeдeлы aдpecнoгo пpocтpaнcтвa пpoцecca.

Boзвpaщaeмoe знaчeниe

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

СМ. ТАКЖЕ

accton(1), , acct(5)



ACCT(4)


НАЗВАНИЕ

acct - формат файла с информацией о процессах

СИНТАКСИС

#include <sys/acct.h>

ОПИСАНИЕ

Файлы, которые образуются системным вызовом , содержат записи следующей структуры, определенной во включаемом файле <sys/acct.h>:

typedef ushort comp_t; /* "Вещественное число": 13 бит мантисса, 3 бита порядок */

struct acct { char ac_flag; /* Флаг учетной информации */ char ac_stat; /* Код завершения */ ushort ac_uid; ushort ac_gid; dev_t ac_tty; time_t ac_btime; /* Время начала */ comp_t ac_utime; /* Пользовательское время ЦП в тактах часов */ comp_t ac_stime; /* Системное время ЦП в тактах часов */ comp_t ac_etime; /* Астрономическое время выполне- ния в тактах часов */ comp_t ac_mem; /* Расход памяти в Кб */ comp_t ac_io; /* Кол-во переданных символов */ comp_t ac_rw; /* Общее число прочитанных и за- писанных блоков */ char ac_comm[8]; /* Имя команды */ };

extern struct acct acctbuf; extern struct inode *acctp; /* Описатель файла учетной информации */ #define AFORK 01 /* Выполнен fork, но не exec */ #define ASU 02 /* Привилегии суперпользователя */ #define ACCTF 0300 /* Тип записи: 00 = acct */

В поле ac_flag флаг AFORK устанавливается при каждом вызове и сбрасывается при вызове . Поле ac_comm наследуется от родительского процесса и сбрасывается при . Каждый раз, когда система выделяет процессу квант времени, она также добавляет к ac_mem текущий размер процесса, вычисляемый как

(размер сегмента данных) + (размер сегмента команд) / (количество процессов в памяти, использующих этот сегмент команд)

Значение ac_mem/(ac_stime+ac_utime) может служить хорошим приближением среднего размера процесса, с учетом разделения сегмента команд.

Следующая структура используется различными командами работы с учетной информацией:

/* Общая учетная информация за некоторый период */

struct tacct { uid_t ta_uid; /* Идент. пользователя */ char ta_name[8]; /* Входное имя */ float ta_cpu[2]; /* Среднее время ЦП в минутах */ float ta_kcore[2]; /* Среднее значение килобайтоминут */ float ta_con[2]; /* Среднее астрономичес- кое время выполнения в минутах */ float ta_du; /* Суммарное использова- ние диска */ long ta_pc; /* Число процессов */ unsigned short ta_sc; /* Число сеансов раб. */ unsigned short ta_dc; /* Число дисковых прими- тивов */ unsigned short ta_fee; /* Для спец. применений */ };

СМ. ТАКЖЕ

, , .

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

СЮРПРИЗЫ

Значение поля ac_mem для быстро заканчивающихся команд дает мало информации о реальном размере команды.



ACCTCMS(1M)


НАЗВАНИЕ

acctcms - получение статистики использования команд

СИНТАКСИС

/usr/lib/acct/acctcms [-a [-p] [-o]] [-c] [-j] [-n] [-s] [-t] файл ...

ОПИСАНИЕ

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

-a Выдавать информацию в символьном виде, а не во внутреннем формате. Выводятся имя команды (COMMAND NAME), количество запусков команды (NUMBER CMDS), общее количество килобайтоминут (TOTAL KCOREMIN), общее время ЦП (в минутах, TOTAL CPU-MIN), астрономическое время выполнения (в минутах, TOTAL REAL-MIN), расход памяти (Кб, MEAN SIZE-K), коэффициент нахальства (HOG FACTOR, среднее время ЦП на один запуск команды, в минутах), количество переданных символов (CHARS TRNSFD) и общее число прочитанных и записанных блоков (BLOCKS/READ) [см. ]. Обычно сортировка производится по общему количеству килобайтоминут.

-cПроизводить сортировку по общему времени ЦП, а не по килобайтоминутам. -jОб'единить все команды, запускавшиеся только один раз, под именем "***other". -nПроизводить сортировку по количеству запусков команд. -sСчитать, что все последующие файлы уже имеют внутренний формат acctcms, а не формат . -tТрактовать все записи как имеющие сводный формат tacct [см. ], в котором время не подразделяется на дневное (P) и ночное (NP). С записями такого формата работала старая версия утилиты acctcms. При указании опции -t вместо двух (под)полей с временами указывается одно, содержащее их сумму, что необходимо для совместимости с предыдущими версиями.

Следующие опции могут указываться только совместно с опцией -a:

-pВыводить статистику только по командам, выполненным обычными пользователями. -oВыводить статистику только по командам, выполненным суперпользователем (такие команды будем называть системными).

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

Следующая последовательность команд типична для ежедневного учета:

acctcms файл ... > нынешний_итог cp общий_итог прежний_итог acctcms -s нынешний_итог прежний_итог > общий_итог acctcms -a -s нынешний_итог

СМ. ТАКЖЕ

.

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

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

ОГРАНИЧЕНИЯ

При использовании опции -t все файлы с информацией о командах должны иметь сводный формат, то есть эта опция не решает проблемы совместного использования новых и старых файлов.



ACCTCOM(1)


НАЗВАНИЕ

acctcom - поиск и печать информации о процессах

СИНТАКСИС

acctcom [[-a] [-b] [-f] [-h] [-i] [-k] [-m] [-q] [-r] [-t] [-v] [-l линия] [-u пользователь] [-g группа] [-s время] [-e время] [-S время] [-E время] [-n шаблон] [-o выходной_файл] [-H коэффициент] [-O сек] [-C сек] [-I число] [файл]] ...

ОПИСАНИЕ

Команда acctcom читает указанный файл, стандартный ввод или файл /usr/adm/pacct [формат исходных данных описан в ], выбирает оттуда некоторые записи и выводит информацию о них на стандартный вывод. Каждая запись описывает выполнение одного процесса. Выводятся: имя команды (COMMAND NAME), имя пользователя (USER), имя терминала (TTYNAME), время начала (START TIME), время окончания (END TIME), астрономическое время выполнения (сек, REAL), время ЦП (сек, CP), расход памяти (Кб, MEAN SIZE) и, в зависимости от опций, флаг fork/exec (F: 1 для fork без exec), системный код завершения (STAT), "коэффициент нахальства" (HOG FACTOR, см. ниже опцию -h), килобайтоминуты (KCORE MIN, см. опцию -k), коэффициент использования ЦП (CPU FACTOR, см. опцию -r), количество переданных символов (CHARS TRNSFD) и общее число прочитанных и записанных блоков (BLOCKS/ WD).

Перед именем команды изображается #, если она была выполнена с привилегией суперпользователя. Если терминал, связанный с процессом, неизвестен, вместо имени терминала выводится ?.

Если аргумент файл не указан и стандартный ввод назначен на терминал или устройство /dev/null (что бывает при асинхронном запуске процесса), происходит чтение из файла /usr/adm/pacct, в противном случае чтение происходит со стандартного ввода.

Если указан один или несколько файлов, они читаются по порядку. Записи в файле упорядочены хронологически по времени окончания процессов. Как правило, в таком порядке они и читаются. Обычно просматривается текущий файл /usr/adm/pacct; в сильно загруженных системах для хранения истории могут использоваться дополнительные файлы с именами вида /usr/adm/pacct*.

Допустимые опции:

-aПоказать средние значения характеристик выбранных процессов. Эти значения будут выведены после всех записей. -bОбратный порядок чтения: сначала выбираются последние записи. Эта опция не действует, если чтение производится со стандартного ввода. -fВыводить флаг fork/exec и системный код завершения. -hВместо расхода памяти сообщать, какую часть доступного времени ЦП использовал процесс во время своего выполнения. Этот "коэффициент нахальства" вычисляется как отношение (время ЦП)/(общее время выполнения). -iВыводить счетчики ввода/вывода. -kВместо расхода памяти выводить произведение количества килобайт памяти на число минут ЦП. -mВыводить расход памяти (это опция по умолчанию). -qНе выводить никаких записей, вывести только средние значения характеристик, как в опции -a. -rВыводить коэффициент использования ЦП: (время пользователя)/(время системы + время пользователя). -tВыводить отдельно время ЦП, затраченное пользователем и системой. -vНе выводить названия колонок. -l линияВыбрать только процессы, относящиеся к терминалу /dev/линия. -u пользовательВыбрать только процессы, относящиеся к пользователю, который может быть задан:

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

-g группаВыбрать только процессы, относящиеся к данной группе. Группа может быть указана либо идентификатором, либо именем группы. -s времяВыбрать процессы, существовавшие в заданное время или позже. Время задается в формате чч[:мм[:сс]]. -e времяВыбрать процессы, существовавшие в заданное время или раньше. Указав одно и то же время для -s и -e, получим процессы, которые существовали в заданное время. -S времяВыбрать процессы, начавшиеся в заданное время или позже. -E времяВыбрать процессы, закончившиеся в заданное время или раньше. -n шаблонВыбрать только процессы, команды которых удовлетворяют шаблону, который может быть любым регулярным выражением. Синтаксис регулярных выражений соответствует синтаксису редактора , с тем исключением, что + означает одно или более вхождений. -o выходной_файлНаправить выбранные записи без изменения формата в выходной_файл; подавить стандартную выдачу. -H коэффициентВыбрать только процессы, "коэффициент нахальства" которых (см. выше опцию -h) превосходит заданный. -O секВыбрать только процессы, системное время ЦП которых превосходит сек. -C секВыбрать только процессы, общее время ЦП которых (системное + пользователя) превосходит сек. -I числоВыбрать только процессы, в которых количество переданных символов превосходит заданное число.

Совместное использование опций вызывает эффект логического И.

ФАЙЛЫ

/etc/passwd /usr/adm/pacct /etc/group

СМ. ТАКЖЕ

, .

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

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

СЮРПРИЗЫ

Команда acctcom дает информацию только о завершившихся процессах, для активных процессов используйте .

Если время превосходит текущее время и не использована опция -d, считается, что речь идет о вчерашнем дне.

Опции -s, -e, -S, -E работают неверно, выявляя не все подходящие процессы.



ACCTCON(1M)


НАЗВАНИЕ

acctcon1, acctcon2 - учет сеансов работы в системе

СИНТАКСИС

/usr/lib/acct/acctcon1 [-p] [-t] [-l файл] [-o файл] /usr/lib/acct/acctcon2

ОПИСАНИЕ

Утилита acctcon1 читает со стандартного ввода последовательность записей о начале/конце сеансов работы пользователей и помещает на стандартный вывод по одной записи на каждый сеанс. Как правило, в качестве стандартного ввода используется файл /etc/wtmp. Результаты работы утилиты acctcon1 выдаются в текстовом виде; в них указываются: терминальная линия, идентификатор пользователя, входное имя, дневное время работы (сек.), ночное время работы (сек.), а также время начала сеанса в числовом виде (как число секунд, прошедшее с 00:00:00 1 января 1970 года) и в виде даты и времени.

Опциям утилиты acctcon1 приписан следующий смысл:

-pВыводить только информацию, содержащуюся в исходных записях, то есть имена терминальных линий, входные имена пользователей и времена начала/конца сеансов (в обоих форматах). -tУтилита acctcon1 хранит список терминальных линий, за которыми работают пользователи. По достижении конца файла с исходными данными утилита порождает запись о сеансе для каждой линии, которая является активной. Обычно подразумевается, что ввод производится из текущего файла, содержащего сведения о начале/конце сеансов, поэтому для незавершенных сеансов в качестве времени их окончания используется текущее время. При указании опции -t вместо этого используется наибольшее время, найденное в исходном файле, что дает удовлетворительные результаты и гарантирует их повторяемость для старых файлов с учетной информацией. -l файл

В указанный файл помещается сводная информация об использовании терминальных линий: имя линии, время использования (мин.), процентное отношение к общему времени работы системы, количество сеансов, количество входов и количество выходов. Этот файл помогает проследить использование терминальных линий, обнаружить неисправные линии, а также ошибки аппаратного и программного обеспечения. Записи о выходе генерируются при освобождении линии, при завершении и при завершении входного shell'а, поэтому количество выходов обычно в три четыре раза больше, чем количество сеансов. См. также и .

-o файл

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

<


/p>

Утилита acctcon2 читает со стандартного ввода последовательность записей о сеансах, преобразует их в сводный формат tacct [см. ] и в том же порядке помещает на стандартный вывод.

ПРИМЕРЫ

Ниже приведен типичный пример использования утилит acctcon1 и acctcon2. Файл ctmp создается только для того, чтобы позднее к нему можно было применить утилиты acctprc1 [см. ] или prctmp [см. ].

acctcon1 -t -l line_info </etc/wtmp | sort +1n +2 \ | tee ctmp | acctcon2 | acctmerg > ctacct

ФАЙЛЫ

/etc/wtmp

СМ. ТАКЖЕ

, , , , .

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

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

СЮРПРИЗЫ

Корректность информации об использовании линий нарушается при изменении даты. Для исправления подобной ситуации следует применять утилиту wtmpfix [см. ].

Утилита acctcon1 выдает на стандартный вывод данные о терминальной линии в виде десятичного числа, равного значению выражения 16 * старший_номер + младший_номер.

Если входное имя пользователя состоит более чем из 8 символов, идентификатор пользователя выдается утилитой acctcon1 неверно.









ACCTMERG(1M)


НАЗВАНИЕ

acctmerg - слияние статистической информации

СИНТАКСИС

/usr/lib/acctmerg [-a] [-i] [-p] [-t] [-u] [-v] [файл ...]

ОПИСАНИЕ

Утилита acctmerg читает исходные данные со стандартного ввода и из указанных в командной строке файлов (их должно быть не более 9). Исходные записи должны иметь сводный формат tacct [см. ] или текстовый вариант этого формата. Утилита acctmerg производит слияние вводимой информации путем об единения записей с одинаковыми значениями ключей, каковыми обычно являются идентификаторы и входные имена пользователей, и помещает результаты на стандартный вывод. Предполагается, что исходные данные отсортированы по значениям ключей.

Допустимые опции:

-aПорождать результаты в текстовом варианте формата tacct. -iСчитать, что исходные записи имеют текстовый вариант формата tacct. -pВыводить исходные данные без обработки. -tСгенерировать одну запись, являющуюся суммой всех исходных записей. -uСчитать ключом только идентификатор пользователя, а не идентификатор и входное имя. -vПорождать результаты в текстовом виде, а числовые величины выводить в вещественном формате.

Для внесения изменений в файл f1, хранящий записи в формате tacct, рекомендуется сначала преобразовать его к текстовому виду командой

acctmerg -v < f1 > f2

после чего отредактировать файл f2 и вновь сгенерировать результаты в сводном формате:

acctmerg -i < f2 > f1

СМ. ТАКЖЕ

, , , , , , , .

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



ACCTOM(8)


НАЗВАНИЕ

acctom - Ищет и печатает файлы учета процессов.

СИНТАКСИС

acctom [[options][file]...

ОПИСАНИЕ

aactom читает file, стандартное устройство ввода или /usr/adm/pacct в виде, задаваемом и выдает выбранные записи на стандартное устройство вывода. Каждая запись представляет информацию о выполнении одного процесса. На выход идут значения COMMAND NAME, USER, TTYNAME, END TIME, REAL(SEC), CPU(SEC),MEAN SIZE(K) и необязательно - F (флаг разветвления/выполнения: 1 - для разветвления без выполнения) и STAT (системный код завершения).

Имя команды предваряется знаком #, как если бы она выполнялась в ресурсе привилегированного пользователя. Если процесс не связан с известным терминалом, в поле TTYNAME помещается знак ?.

Если не задается никаких файлов file, то стандартный ввод связывается с терминалом или /dev/null (как в случае использования & в оболочке), читается файл /usr/adm/pacct, в противном случае читается стандартное устройство ввода. Если заданы аргументы file, то они читаются в последовательном порядке. Все файлы обычно читаются вперед, то есть в хронологическом порядке по отношению ко времени завершения процесса. Текущим исследуемым файлом обычно является файл /usr/adm/paact; загруженная система может нуждаться в нескольких таких файлах, в этом случае все файлы, кроме текущего, будут находиться в /usr/adm/pacct?. Опции таковы:

-bЧтение назад с выводом в первую очередь последних команд. -fПечать колонок флага разветвления/выполнения и кода завершения. -hВместо того, чтобы показать средний размер памяти, выдается часть общего доступного времени центрального процессора, потребленного процессом во время его выполнения. Этот фактор потребления ("hog factor") вычисляется так:

(общее время работы центрального процессора/истекшее время)

-jПечать колонок, содержащих подсчет операций ввода/вывода. -kВместо размера памяти выводится общее количество kcore-минут. -m Показывает средний размер ядра (по умолчанию). -rВыводит фактор центрального процессора (пользовательское время/(системное время + пользовательское время)). -tВыводит отдельно системное время и пользовательское время на центральном процессоре. -vИсключает заголовки колонок из выходной информации. -l lineВыводит информацию только о процессах, принадлежащих терминалу /dev/line. -u userВыводит информацию только о процессах принадлежащих пользователю user, который может быть представлен пользовательским идентификатором, регистрационным именем, которое тогда преобразуется к пользовательскому идентификатору, знаком #, обозначающим процессы, выполняемые привилегированным пользователем или ?, указывающим на процессы с неизвестным пользовательским идентификатором. -g groupВыводит информацию только о процессах, принадлежащих группе group, которая может быть задана либо идентификатором группы, либо групповым именем. -d mm/ddЛюбые аргументы времени суток, следующие за этим флагом, предполагаются относящимися к данному месяцу или дню, а не к последним 24 часам. Это требуется для выявления старых файлов. -s timeВыводит информацию только о тех процессах, которые существовали в момент или после времени time, заданного в виде час:мин:сек. Части :сек или :мин:сек могут быть опущены. -e timeВыводит информацию только о тех процессах, которые существовали на момент или до времени time. Использование одного значения time как для -s, так и для -e выводит информацию о процессах, существовавших на момент time. -n patternВыводит информацию только о командах, соответствующих образцу pattern, который может быть регулярным выражением, как в , за исключением того, что + означает одно или несколько совпадений. -H factorВыводит информацию только о процессах, которые выходят за предел фактора потребления factor, описанного в опции -h. -I numberВыводит информацию о процессах-драйверах, передающих больше символов, чем задано пределом number. -O timeВыводит информацию только о процессах со временем работы центрального процессора, превышающим время time. -C timeВыводит информацию только о процессах с общим временем работы центрального процессора, превышающим время time.

Задание нескольких опций имеет эффект логического "И".

ФАЙЛЫ

/etc/passwd /usr/adm/pacct /etc/group

СМ. ТАКЖЕ

, , , acct(S), , utmp(3)

ПРИМЕЧАНИЯ

acctcom выдает информацию только по завершившимся процессам; для активных процессов используйте .



ACCTON(8)


НАЗВАНИЕ

accton - включает учет процессов

СИНТАКСИС

accton [file]

ОПИСАНИЕ

accton включает и выключает учет процессов. Если аргумент file отсутствует, то учет отключается. Если же file задан, то ядро добавляет в file записи учета процессов. (См. и ассt(3)).

ФАЙЛЫ

/etc/passwd Используется для преобразования регистационного имени в пользовательский идентификатор /usr/adm/pacct Текущий файл учета процессов /usr/adm/sulogin Файл регистрации подключений к системе привилегированного пользователя /etc/wtmp Файл регистрации входа и выхода из системы

СМ. ТАКЖЕ

acctcom(8), , , , utmp(3)



ACCTPRC(1M)


НАЗВАНИЕ

acctprc1, acctprc2 - получение статистической информации о процессах

СИНТАКСИС

/usr/lib/acct/acctprc1 [файл] /usr/lib/acct/acctprc2

ОПИСАНИЕ

Утилита acctprc1 читает со стандартного ввода записи о процессах, имеющие формат acct [см. ], добавляет к ним входные имена пользователей, а затем для каждого процесса выдает текстовую строку, в которой указаны идентификатор пользователя, его входное имя, время ЦП, истраченное днем (в тактах часов), время ЦП, истраченное ночью (в тактах часов) и средний расход памяти (в 64-байтных единицах). Как правило, стандартный ввод назначается на файл /usr/adm/pacct.

Файл, если он указан, должен содержать записи о сеансах работы пользователей в системе, сгенерированные утилитой acctcon1 [см. ] и отсортированные по идентификаторам и входным именам пользователей. Файл помогает устранить неоднозначности, возникающие, когда с одним идентификатором связано несколько входных имен пользователей. Если файл не указан, входные имена извлекаются из файла паролей /etc/passwd.

Утилита acctprc2 читает записи, порожденные acctprc1, выполняет их слияние, используя в качестве ключей идентификаторы и входные имена пользователей, сортирует и помещает результирующие записи на стандартный вывод в сводном формате tacct [см. ].

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

acctcon1 /etc/wtmp | sort +1n +2 > ctmp acctprc1 ctmp </usr/adm/pacct | acctprc2 ptacct

ФАЙЛЫ

/etc/passwd

СМ. ТАКЖЕ

, .

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

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

СЮРПРИЗЫ

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



ACCTSH(1M)


НАЗВАНИЕ

acctsh: chargefee, ckpacct, dodisk, lastlogin, monacct, nulladm, prctmp, prdaily, prtacct, runacct, shutacct, startup, turnacct - shell-процедуры сбора статистики

СИНТАКСИС

/usr/lib/acct/chargefee входное_имя число /usr/lib/acct/ckpacct [число_блоков] /usr/lib/acct/dodisk [-o] [файл ...] /usr/lib/acct/lastlogin /usr/lib/acct/monacct период /usr/lib/acct/nulladm файл /usr/lib/acct/prctmp файл ["заголовок"] /usr/lib/acct/prdaily [-l] [-c] [ммдд] /usr/lib/acct/prtacct файл ["заголовок"] /usr/lib/acct/runacct [ммдд [фаза]] /usr/lib/acct/shutacct ["причина"] /usr/lib/acct/startup /usr/lib/acct/turnacct [on] [off] [switch]

ОПИСАНИЕ

Процедура chargefee используется для добавления заданного числа единиц оплаты на счет пользователя с указанным входным_именем. В файл /usr/adm/fee помещается соответствующая запись, которая ночью, во время ежесуточного запуска процедуры runacct, будет об единена с другими учетными записями.

Процедура ckpacct должна периодически запускаться cron'ом [см. ]. Она проверяет размер файла /usr/adm/pacct. Если размер превышает указанное число_блоков (по умолчанию 500), запускается утилита turnacct с аргументом switch. Если количество свободных блоков в файловой системе, содержащей каталог /usr, меньше 500, ckpacct автоматически выключает сбор статистической информации о процессах, используя для этого команду turnacct off. Когда появится по крайней мере 500 свободных блоков, сбор статистической информации о процессах возобновится (будет выполнена команда turnacct on). Обычно планируется один запуск процедуры ckpacct в час.

Процедура dodisk служит для накопления информации об использовании дискового пространства. По умолчанию она выполняет сбор статистики об устройствах, перечисленных в файле /etc/checklist. Если задана опция -o, выполняется более медленная процедура учета использования дискового пространства каждым из пользователей. Если в командной строке указаны файлы, они определяют имена файловых систем, для которых будет произведен сбор статистики; содержимое таблицы /etc/checklist при этом игнорируется. Если задана опция -o, файл должен быть именем каталога, к которому подключена файловая система; в противном случае файл должен быть именем специального файла, содержащего пригодную для монтирования файловую систему. Обычно процедуру dodisk планируют для периодического запуска cron'ом.


Процедура lastlogin запускается утилитой runacct для обновления файла /usr/adm/acct/sum/loginlog, содержащего даты последнего входа в систему каждого из пользователей.

Процедура monacct должна запускаться один раз в месяц или в учетный период. Аргумент период указывает, какой именно месяц или период имеется в виду. Подразумеваемым значением периода является текущий месяц (01-12). Это полезно, поскольку обычно monacct запускается cron'ом по первым числам каждого месяца. Monacct создает файлы сводки в каталоге /usr/adm/acct/fiscal и очищает файлы в каталоге /usr/adm/acct/sum.

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

Процедура prctmp служит для печати файла с записями о сеансах (обычно это файл /usr/adm/acct/nite/ctmp), созданного утилитой acctcon1 [см. ].

Процедура prdaily используется для форматирования и печати (на стандартный вывод) отчета за указанный день. Предполагается, что отчеты хранятся в файлах с именами /usr/adm/acct/sum/rprtммдд, где ммдд есть месяц и день создания отчета. Для получения отчета за текущий день следует вызвать процедуру prdaily без аргументов [что и делает ]. Отчет за какой либо из предыдущих дней можно получить, указав нужную дату (ммдд) в командной строке. Опция -l служит для вывода сведений о сверхактивных пользователях, потребивших ресурсов больше некоторого предела (например, истративших более 20 минут времени ЦП или проведших в системе более двух часов). Отметим, что процедура monacct удаляет отчеты за предыдущие дни. Опция -c используется для вывода сведений о командах, потребивших подозрительно много ресурсов (например, истративших более 1000 килобайтоминут). Сведения о расточительных командах можно получить только за текущий день.

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

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



Процедура shutacct должна запускаться при выключении системы для прекращения сбора информации о процессах и для записи "причины" в файл /etc/wtmp. Обычно запуск shutacct производится из процедуры /etc/shutdown.

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

Процедура turnacct обеспечивает удобный интерфейс с утилитой accton [см. ]. Она используется для включения (on) и выключение (off) сбора информации о процессах. При указании аргумента switch производятся следующие действия: выключается сбор статистики; текущий файл /usr/adm/pacct переименовывается в /usr/adm/ pacctчисло (где число, начиная с 1, увеличивается на 1 при создании каждого дополнительного файла pacct); вновь включается сбор статистики. Процедура turnacct вызывается из регулярно планируемой к выполнению утилиты ckpacct; тем самым размер файла /usr/adm/pacct поддерживается в разумных пределах. Из трех возможных аргументов процедуры turnacct должен быть указан ровно один.

ФАЙЛЫ

/usr/adm/fee

Файл, в котором накапливается информация об оплате. /usr/adm/pacct

Текущий файл с информацией о процессах. /usr/adm/pacct*

Файлы с ранее накопленной информацией о процессах. /etc/wtmp

Файл со сведениями о начале/конце сеансов работы пользователей в системе. /usr/lib/acct/ptelus.awk

Файл с критериями отбора сверхактивных пользователей. /usr/lib/acct/ptecms.awk

Файл с критериями отбора расточительных команд. /usr/adm/acct/nite

Рабочий каталог. /usr/lib/acct

Каталог, содержащий все утилиты для сбора статистики. /usr/adm/acct/sum

Каталог, содержащий сводную информацию. /usr/spool/cron/crontabs/adm

Файл с описанием регулярных административных действий.

СМ. ТАКЖЕ

, , , , , , , , .

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

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









ADD(1M)


НАЗВАНИЕ

add - добавление драйвера устройства или модуля потока к ядру ОС UNIX

СИНТАКСИС

/etc/add [-o вых_файл] [-m master_файл] [-d dfile_файл] [-u ядро] [-t целевой_файл] [-s адрес_таблицы_имен] [-l] об ектный_файл ...

ОПИСАНИЕ

Утилита add обеспечивает все действия по добавлению драйверов устройств и/или модулей потоков к работающему ядру ОС UNIX. Действия эти состоят в следующем:

Программа addconf [см. ] читает master_файл и dfile_файл и генерирует конфигурационные файлы conf.c и low.s, которые компилируются. Генерируется инструкция по загрузке. Редактируются связи между файлами conf.o, low.o, ядром и об ектными_файлами. Инструкция по загрузке информирует редактор связей , что ядро не надо загружать, то есть что используется только таблица имен UNIX-ядра для разрешения внешних ссылок. В данном случае редактор связей служит лишь для вычисления размера выполняемого файла, который будет порождаться позднее. Вычисленный размер передается следующему шагу. Программа addkern -a [см. ] выделяет пространство в физической и виртуальной памяти и возвращает адрес, по которому позднее выполняемый файл расположится в виртуальной памяти ядра. Этот адрес выдается на стандартный вывод и помещается в инструкцию по загрузке, придавая ей окончательный вид. Все связи редактируются снова с помощью инструкции по загрузке, в которой уже фиксирован адрес. Программа загружает собранный выполняемый файл в виртуальную память ядра. Если специфицирован адрес_таблицы_имен, то имена из выполняемого файла вставляются в эту таблицу. Вызов addkern -x делает драйверы устройств и/или модули потоков известными для UNIX-ядра. В нем модифицируются таблицы, вставляются вектора прерываний, и, если требуется, вызываются функции инициализации. Вследствие этого на системную консоль могут выводиться некоторые сообщения. Если система к этому времени еще не завершила аварийно свою работу, то будет выдано сообщение об успешной установке новой версии.

Опциям утилиты add приписан следующий смысл:

-o вых_файлЗадает имя выполняемого файла, порождаемого . Если имя не специфицировано, то оно определяется по имени первого об ектного_файла. -m master_файлЗадает имя master_файла для программы addconf. По умолчанию используется имя master. -d dfile_файлЗадает имя dfile_файла для программы addconf. По умолчанию используется имя dfile. -u ядроЗадает имя ядра для разрешения внешних ссылок. По умолчанию используется имя /unix. -t целевой_файлЗадает имя целевого_файла для программы download. По умолчанию используется /dev/kmem. -s адрес_таблицы_именАдрес_таблицы_имен передается программе download. -lПропустить первую из перечисленных выше фаз и использовать существующие файлы conf.o и low.o.

<


/p>

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

Утилита add использует и, следовательно, может вызываться только суперпользователем.

ФАЙЛЫ

.add /tmp/addldinstr Промежуточная инструкция по загрузке.

СМ. ТАКЖЕ

, , .

ДИАГНОСТИКА

Утилита add написана на языке shell. В процессе ее работы могут поступать сообщения от используемых программ.

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

Используйте add только в однопользовательском режиме.

Использование add может вызвать аварийный отказ Вашей системы.

Использовать add рекомендуется только лучшим специалистам (гуру) по операционной системе UNIX.









ADDKERN(1M)


НАЗВАНИЕ

addkern - добавление драйвера устройства или модуля потока к ядру ОС UNIX

СИНТАКСИС

/etc/addkern [-a размер] [-a выполняемый_файл] [-x адрес] [-f адрес] [-l]

ОПИСАНИЕ

Утилита addkern обеспечивает добавление драйверов устройств или модулей потоков к ядру ОС UNIX. Применение всех опций, за исключением -l, доступно только суперпользователю. Из всех возможных опций должна быть указана ровно одна.

Опциям утилиты addkern приписан следующий смысл:

-a размер

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

-a выполняемый_файл

Выделение пространства в виртуальной и физической памяти ядра. Размер вычисляется по секциям выполняемого_файла.

-x адрес

Активация драйвера устройства или модуля потока. Адрес является виртуальным адресом в пространстве ядра, заранее полученным с помощью вызова addkern -a. UNIX-ядро предполагает, что по данному адресу находится структура типа addkern. Эта структура определяется во включаемом файле <sys/conf.h> и будет сгенерирована программой addconf [см. ].

-f адрес

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

-l

На стандартный вывод выдается список выделенных и активных в ядре структур типа addkern.

ФАЙЛЫ

/usr/include/sys/conf.h

СМ. ТАКЖЕ

, , .

ДИАГНОСТИКА

Диагностические сообщения утилиты addkern не нуждаются в пояснениях.

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

Предоставьте вызовы addkern -a и addkern -x утилите - у нее больше информации.

Вызывайте addkern с опциями -a, -x, -f только в однопользовательском режиме.

Использование addkern может вызвать аварийный отказ Вашей системы.

Использовать addkern рекомендуется только лучшим специалистам (гуру) по операционной системе UNIX.



ADFMT(8)


НАЗВАНИЕ

adfmt - Форматирует жесткие диски типа SCSI.

СИНТАКСИС

/etc/adfmt device_name

ОПИСАНИЕ

Команда adfmt запускает команду format для SCSI-диска device_name. device-name должно быть символьным устройством, представляющим весь SCSI-диск, например, /dev/rhd00.

ПРИМЕЧАНИЯ

Эта утилита не применима ко всем конфигурациям

аппаратных и программных средств и не может

включаться в вашу поставку.

SCSI-диски со встроенными контроллерами форматируются в процессе производственного тестирования. Запуск команды admft для этих дисков не обязателен.

ФАЙЛЫ

/dev/rhd?0



ADMIN(1)


НАЗВАНИЕ

admin - создание и административные функции для SCCS-файлов

СИНТАКСИС

admin [-n] [-i[файл]] [-rверсия] [-t[файл]] [-fфлаг[значение]] [-dфлаг[значение]] [-aпользователь] [-eпользователь] [-m[список_номеров_запросов_на_модификацию]] [-y[комментарий]] [-h] [-z] файл ...

ОПИСАНИЕ

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

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

Каждая опция об ясняется ниже для одного обрабатываемого файла; при нескольких файлах она применяется к каждому из них.

-nСоздать новый SCCS-файл -i[файл]

Текст для нового SCCS-файла взять из указанного файла. Этот текст составляет начальную версию (по поводу нумерации версий см. опцию -r). Если используется опция -i, а файл не задан, текст берется со стандартного ввода, до достижения конца файла. Если опция -i отсутствует, SCCS-файл создается пустым. Командой admin с опцией -i можно создать только один файл, без опции -i можно создать несколько (пустых) файлов. Опция -i подразумевает опцию -n.

-rверсия

Номер начальной версии файла. Эта опция используется совместно с опцией -i. Если -r отсутствует, подразумевается версия 1. Уровень начальной версии всегда 1, то есть по умолчанию начальная версия получает имя 1.1.

-t[файл]

Описание SCCS-файла взять из файла. Если опция -t используется при создании SCCS-файла (опции -n и/или -i) файл с описанием обязателен. Для существующего файла: (1) опция -t без имени файла приводит к удалению описания SCCS-файла, (2) опция -t с именем файла приводит к замене существующего описания SCCS-файла на новое, содержащееся в файле.

-fфлаг[значение]

Эта опция определяет флаг, и, возможно, значение флага, который помещается в SCCS-файл. В одной команде admin могут указываться несколько опций -f. Допустимые флаги и их значения:

b Допустимость использовать опцию -b команды для создания ответвлений. cверсия Максимальная версия (до 9999), которая может быть выбрана командой для редактирования. Значение по умолчанию (если флаг c не указан) равно 9999. fверсия Минимальная версия (до 9999), которая может быть выбрана командой для редактирования. Значение по умолчанию (если флаг f не указан) равно 1. dс_идентификатор Номер версии по умолчанию, который будет использоваться командой . i Приводит к тому, что сообщение "No id keywords (ge6)", выдаваемое программами или , интерпретируется как фатальная ошибка. В отсутствие этого флага указанное сообщение является предупреждением; оно выдается, если в тексте, извлеченном из SCCS-файла или записанном в него, не оказалось ключевых слов SCCS [см. ]. j Допускается использование нескольких команд одновременно для редактирования одной и той же версии SCCS-файла. Это позволяет вносить параллельно несколько изменений в одну и ту же версию SCCS-файла. lсписок Список версий, в которые запрещено вносить изменения (то есть команда get -e для этих "закрытых" версий завершается неудачей). Синтаксис списка следующий:

список ::= элемент | список,элемент элемент ::= номер_версии | a

Символ a означает все версии в SCCS-файле. n Приводит к тому, что при создании новой версии будет создавать пустыми все пропущенные версии (например, создавая версию 5.1 после версии 2.7, имеем пропущенные версии 3 и 4). Эти пустые версии могут затем быть использованы для новых ветвей. Отсутствие флага n приводит к отсутствию пропущенных версий в SCCS-файле, использовать их в будущем для новых ветвей нельзя. qтекст Производится подстановка текста вместо всех вхождений %Q% в информацию, извлеченную из SCCS-файла с помощью . mимя Производится подстановка имени вместо всех вхождений %M% в тексте, который извлечен из SCCS-файла с помощью . Если флаг m не указан, вместо %M% подставляется имя SCCS-файла, из которого удалены начальные s.. tтип Производится подстановка типа вместо всех вхождений %Y% в тексте, который извлекается из SCCS-файла с помощью . v[программа] Приводит к тому, что запрашивает в качестве причины создания версии номер запроса на модификацию. Необязательный параметр указывает имя программы проверки корректности этого номера (см. ). Если этот флаг указывается при создании SCCS-файла, обязательно должна быть указана опция -m, хотя бы с пустым значением.

-dфлаг[значение]

Приводит к удалению указанного флага из SCCS-файла. Опция -d может быть указана только для существующих SCCS-файлов. В одной команде admin можно указать несколько опций -d. Допустимые флаги см. в описании опции -f.

lсписок

Список "закрытых" версий, которые должны быть "открыты". Синтаксис списка см. в описании флага l опции -f.

-aпользователь

Имя пользователя или числовой идентификатор группы добавляется к списку пользователей, которые имеют право редактировать версии в SCCS-файле. Указание идентификатора группы эквивалентно указанию имен всех пользователей, принадлежащих группе. В одной команде admin можно указать несколько опций -a. Количество имен пользователей и идентификаторов групп в списке имеющих доступ не ограничено. Если этот список пуст, никто не может редактировать версии.

-eпользователь

Имя пользователя или числовой идентификатор группы удаляется из списка пользователей, которые имеют право редактировать версии в SCCS-файле. Указание идентификатора группы эквивалентно указанию имен всех пользователей, принадлежащих группе. В одной команде admin можно указать несколько опций -e.

-m[список_номеров_ запросов_на_модификацию]

Список_номеров_запросов_на_модификацию включается в SCCS-файл в качестве причины создания начальной версии тем же способом, что и . Флаг v должен быть установлен. Номера запроса проверяются на корректность, если флаг v содержит значение (имя программы проверки). Если флаг v не указан или программа проверки выявила некорректность, выдается диагностика.

-y[комментарий]

Текст комментария вносится в SCCS-файл как комментарий к начальной версии, тем же способом, что и . Опущенная опция -y приводит к занесению в файл стандартного комментария:

date and time created гг/мм/дд чч:мм:сс by пользователь Опция -y может быть указана только совместно с опциями -i и/или -n (то есть при создании нового SCCS-файла). Если комментарий больше одного слова, он должен быть заключен в двойные кавычки.

-h

Admin проверяет структуру SCCS-файла [см. sccsfile(5)] и сравнивает вновь вычисленную контрольную сумму (сумму кодов всех символов в SCCS-файле, кроме символов первой строки) с контрольной суммой, хранящейся в первой строке SCCS-файла. Выдается соответствующая диагностика. Эта опция запрещает запись в файл, аннулирует все остальные опции и имеет смысл только для существующих файлов.

-z

Контрольная сумма SCCS-файла перевычисляется и записывается в первую строку (см. выше опцию -h). Использование этой опции для поврежденного файла может привести к тому, что повреждение пройдет незамеченным.

<


/p>

ФАЙЛЫ

Простые имена SCCS-файлов должны иметь вид s.имя_файла. Новые SCCS- файлы получают права доступа 444 [см. ]. Безусловно, для создания файла требуются права записи в каталог. Всю запись admin производит во временный файл с именем x.имя_файла [см. ], создаваемый с правами доступа 444 (если команда admin создает новый файл) или с теми же правами доступа, что и существующий SCCS-файл. После успешного завершения выполнения admin, старый SCCS-файл удаляется, а временный переименовывается. Это гарантирует, что изменения вносятся в SCCS-файл только при отсутствии ошибок.

Рекомендуется, чтобы все каталоги, содержащие SCCS-файлы, имели права доступа 755, а сами SCCS-файлы - права доступа 444. Указанные права для каталога позволяют модифицировать SCCS-файлы, находящиеся в каталоге, только владельцу каталога. Права для SCCS-файлов предотвращают модификацию этих файлов иначе, чем через команды SCCS.

Если все-таки по какой-либо причине потребуется модифицировать SCCS-файл, права доступа могут быть изменены на 644, что позволит владельцу использовать для модификации редактор . Будьте осторожны и внимательны! Модифицированный файл должен быть обязательно обработан командой admin -h для проверки корректности, а затем admin -z для генерации правильной контрольной суммы. После этого рекомендуется еще раз выполнить команду admin -h для контроля нормального состояния SCCS-файла.

Admin также создает файл-замок z.имя_файла, который используется для предотвращения одновременного доступа к SCCS-файлу несколькими пользователями. Дополнительную информацию см. в .

СМ. ТАКЖЕ

, , , , , .

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

ДИАГНОСТИКА

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









ALARM(2)


НАЗВАНИЕ

alarm - установка будильника для процесса

СИНТАКСИС

unsigned alarm (sec) unsigned sec;

ОПИСАНИЕ

Системный вызов alarm устанавливает будильник. Через определенное аргументом sec число секунд реального времени вызывающий процесс получит сигнал SIGALRM[см. ].

Запросы к alarm не запоминаются в стеке; последовательные вызовы просто переустанавливают будильник процесса.

Если sec=0, все предыдущие запросы к alarm отменяются.

СМ. ТАКЖЕ

, , sigpause(2), .

ДИАГНОСТИКА

Системный вызов alarm возвращает время, установленное предыдущим обращением к нему.



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


ИМЯ

alarm - ycтaнaвливaeт тaймep пpoцecca

СИНТАКСИС

unsigned alarm (sec) unsigned sec;

ОПИСАНИЕ

alarm ycтaнaвливaeт тaймep пpoцecca нa sec ceкyнд. Пocлe иcтeчeния sec ceкyнд тaймep пocылaeт пpoцeccy cигнaл SIGALRM; cм. signal(3).

alarm нe пepeвoдит пpoцecc в oжидaниe этoгo cигнaлa; для этoй цeли мoжeт иcпoльзoвaтьcя вызoв pause(3).

Зaпpocы нa ycтaнoвкy тaймepa нe нaкaпливaютcя; oчepeднoй вызoв alarm oтмeняeт ycтaнoвкy, cдeлaннyю пpeдыдyщим вызoвoм.

Ecли sec paвeн 0, тo тaймep oбнyляeтcя, т.e. пpocтo oтмeняeтcя ycтaнoвкa, cдeлaннaя пpeдыдyщим вызoвoм.

fork(3) ycтaнaвливaeт тaймep нoвoгo пpoцecca в 0, a нacлeдyeт тaймepнoe вpeмя oт пpeдыдyщeгo oбpaзa пpoцecca.

Boзвpaщaeмoe знaчeниe

alarm вoзвpaщaeт тaймepнoe вpeмя, ocтaвшeecя oт пpeдыдyщeй ycтaнoвки тaймepa.

СМ. ТАКЖЕ

pause(3), signal(3)



ALIASES(7)


НАЗВАНИЕ

aliases, aliases.hash, maliases, maliases.hash, faliases - Совмещение имен файлов Micnet.

ОПИСАНИЕ

Эти файлы содержат определения псевдонимов сети Micnet. Псевдонимы - это краткие имена или сокращения, которые могут употреляться в команде mail для обращения к определенным устройствам или пользователям в сети. Совмещение имен делает возможным представление в виде одного имени сложного сочетания имен местоположения, устройства и пользователя.

Каждый из файлов aliases, maliases и faliases определяет различные типы псевдонимов. Aliases определяет стандартные псевдонимы, которые являются именами определенной системы и пользователей и, в некоторых случаях, команд. Файл maliases определяет машинные псевдонимы, имена и пути доступа к определенным системам. Faliases определяет ретранслированные псевдонимы, то есть временные имена при ретранслировании одной пересылки, производимой системой или устройством, к другим.

Aliases.hash является хешированной версией файла aliases, созданной с помощью команды aliashash. Данный файл используется командой mail для разрешения всех стандартных псевдонимов; он аналогичен файлу aliases, за исключением того, что у него в начале файла имеется таблица хеширования. Таблица хеширования позволяет более эффективно обращаться с входами в файл. Чтобы сгенерировать файл aliases.hash, должен быть только файл aliases. Чтобы производить вычисления в сети, файл aliases не требуется.

Файл maliases.hash представляет собой хешированную версию файла maliases. Это произвольный файл, создаваемый с помощью следующей команды:

/usr/lib/mail/aliashash/usr/lib/mail/maliases

Если создан файл malias.hash, то для вычисления в сети больше не требуется файла maliases.Если число устройств в сети велико и, в особенности, если применяется несколько типов сетей, рекомендуется хешировать файл maliases. В такой сети конфигурация больше не однородна, и псевдонимы будут несколько сложны, а псевдонимы устройств будут различны у разных устройств. Использование псевдонимов устройств позволяет, чтобы в данной сети стандартный файл псевдонимов был бы одинаковым для всех устройств. В такой среде netutil может сгенерировать только файлы сети, которые могут использоваться в точке старта. А остальную поддержку сети следует выполнять вручную с помощью редактора.


Каждый файл содержит 0 или более строк. Если следует произвести хеширование, требуется, по крайней мере, один псевдоним. Каждая строка распечатывает псевдоним и его значение. Значение псевдонима может иметь входные имена местополжения устройства и пользователя и другие псевдонимы ( его точный вид зависит от вида псевдонимов). Требуется двоеточие, разделяющее псевдоним и его значение.

В файле aliases строка может иметь вид:

alias:[[site!]machine:]user[,[[site!machine:]user]... alias:[[site!]machine:]command-pipeline alias:error-message

Site и machine представляют собой имена устройства и местоположения системы, в которой находится пользователь, или в которой следует выполнить определенную команду. Имена местоположения и устройства должны оканчиваться восклицательным знаком (!) или двоеточием (:) соответственно и определяться в файле systemid. Псевдоним устройства может использоваться вместо имен местоположения и устройства, если за ним идет знак вопроса (?).

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

Command-pipeline представляет собой любую действительную команду (с необходимыми аргументами), перед которой изображается канал (|), и заключенную в двойные кавычки. Пробелы могут разделять команду и аргументы, но между первыми двойными кавычками и знаком канала не должно быть пробела.

Error-message представляет собой любую последовательность букв, цифр и знаков пунктуации (за исключением знака двойной кавычки), перед которой стоит (#), и заключенную в двойные кавычки.

В файле faliases каждая строка имеет одинаковый вид, аналогично файлу aliases; отличие в том, что для любого псевдонима может быть дано не более одного имени пользователя. Чтобы предотвратить распространение псевдонима на дистанционное устройство, перед значением следует поставить выходной знак "\\", как в следующем примере:



foo:mach?\\foo

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

В файле maliases строка имеет вид:

alias:[[site!]machine:]...

Site и machine являются именами местоположения и усройства для определенных сетей и систем. Повторные имена местоположения и устройства направляют сообщения по определенным путям системы. Если нет имени местоположения и устройства, псевдоним опускается.

Перед тем, как программе mail послать сообщение, она ищет alises.hash, faliases и maliases файлы для того, чтобы увидеть, если имена, данные этой командой, являются псевдонимами. Каждый файл просматривается по очереди (aliases.hash, faliases, затем malises), и если соответствие найдено, псевдоним заменяется своим значением. Если не найдено, то именем считается действительное входное имя пользователя на этом устройстве. Поиск в aliases.hash продолжается до тех пор, пока не будут заменены все псевдонимы, поэтому для одного имени может быть найдено несколько замен. Циклы псевдонимов уже обнаружены. Если цикл существует, любые получатели, вовлеченные в цикл псевдонимов, убираются из списка, и на дисплее высвечивается сообщение об ошибке. Файл faliases просматривается также, от начала к концу, даже если он пустой. Maliases ищется только, если псевдоним содержит псевдоним устройства.

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



Во всех файлах любая строка, начинающаяся со знака (#), рассматривается как комментарий и игнорируется.

Особенность в том, что перед любым псевдонимом, содержащим имя местоположения, в качестве первой компоненты значения автоматически ставится псевдоним устройства uucp?. Этот псевдоним может быть явно определен в файле maliases для того, чтобы помочь управлять почтой между связями и системой, представляющей канал связи uucp.

Директивы

Хотя директивы псевдонимов никогда не включаются в расширения псевдонимов, они могут употребляться для того, чтобы ограничить расширение класса пользователей, ретранслируя нерасширенные псевдонимы на другое устройство, или выдавать сообщение об ошибках. Файл aliases может включать директивы в виде:

testalias:$xalaska,miken,georger,terix

sams:"$e ambiguous,use samst or samsm"

Директивами псевдонимов являются области, которые начинаются со знака ($) c правой стороны псевдонима (после двоеточия). Области, содержащие любые символы пробелов или табуляции, должны заключаться в кавычки. Директива должна стоять перед обычными правосторонними областями, как показано в примере выше. Буквы, стоящие за знаком ($), уточняют тип директивы.

$n<real name or description> $x<machine> $e<error message> $p<permissions> $r<restrictions>

Ни одна из приведенных выше директив сейчас не содержится в /usr/lib/mail/faliases. Только $е находится в /usr/lib /mail/maliases и maliases.hash. Непризнанные директивы не создают сообщения об ошибках и трактуются, как если бы их не существовало. Приведенные выше директивы детально описываются следующим образом:
$nДля псевдонима пользователя, этому полю следует содер жать полное действительное имя пользователя, связанное с псевдонимом. Для псевдонима группы, следует предоставлять описание группы. $xВызывает нерасширенный псевдоним перед полем, в котором определено устройство. Белое пространство допускается сразу после $x. Как только выполнится совмещение имен устройства, псевдоним соответствующего устройства должен находиться в файле maliases. $eПоле содержит сообщение об ошибке, которое будет напечатано. Левая часть псевдонима будет устранена из списка пользователей, которые являются псевдонимами. # - альтернативная форма $е. $pЭто поле содержит звездочку (*) или строку из больших и маленьких букв алфавита. Каждая буква указывает на то, что пользователь, в левой части псевдонима, принадлежит к определенному классу пользователей. Звезда (*) предполагает членство во всех таких классах. $rПоле содержит строку из больших и маленьких букв алфавита, каждая буква, указывающая "класс" пользователей, который допускает расширение $p. Отсутствие $r поля означает, что пользователь может расширить псевдоним. Если выходит $r поле, расширение допустимо только, если: пользователь, требующий расширения, имеет $p поле, и оно содержит один или более символов, обнаруженных в $r поле. пользователь имеет $p поле, и оно содержит "*". действительный пользователь ID есть 0 (суперпользователь).

<



/p>

Если расширение не допустимо, не выдается сообщения об ошибке; псевдоним в вопросе трактуется, как если бы он не был представлен.

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

network: "$n the network mail recipient,"root

Для того чтобы ретранслировать псевдоним группы, названный testalias, на устройство, названное alaska, и расширить его там, можно использовать следующий псевдоним:

testalias:$xalaska, mikem, georger, terih

Файлы

/usr/lib/mail/aliases /usr/lib/mail/aliases.hash /usr/lib/mail/maliases /usr/lib/mail/faliases /usr/lib/mail/maliases.hash

СМ. ТАКЖЕ

, , systemid(3), top(3)









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


НАЗВАНИЕ

aliashash - гeнepaтop xeш-тaблицы пceвдoнимoв ceти Micnet

СИНТАКСИС

aliashash [-v][-o output-file][input-file]

ОПИСАНИЕ

Koмaндa aliashash читaeт вxoднoй фaйл input-file и coздaeт выxoднoй фaйл output-file, coдepжaщий xeш-тaблицy пceвдoнимoв. Bxoднoй фaйл дoлжeн coдepжaть oпpeдeлeния пceвдoнимoв в фopмaтe, oпиcaннoм для фaйлa aliases (cм. aliases(M)). Ecли нe иcпoльзyeтcя флaг -o coздaeтcя фaйл c имeнeм input-file и cyффикcoм .hash. Ecли нe yкaзaн и вxoднoй фaйл, читaeтcя /usr/lib/mail/aliases и coздaeтcя /usr/lib/mail/aliases.hash.

Пpи иcпoльзoвaнии флaгa -v вывoдитcя инфopмaция o xeштaблицe.

Bыxoднoй фaйл coдepжит пo двa oпpeдeлeния для кaждoгo пceвдoнимa: oпpeдeлeниe, дaннoe вo вxoднoм фaйлe и нoвoe oпpeдeлeниe из xeш-тaблицы. Xeш-тaблицa нaxoдитcя в нaчaлe фaйлa и oтдeлeнa oт ocнoвнoй eгo чacти пycтoй cтpoкoй. Xeштaблицa cocтoит из тpex или бoлee cтpoк. Пepвoй cьpoкoй являeтcя:

#<hash>

Bтopaя cтpoкa имeeт чeтыpe пoля: бaйты нa кaждый тaбличный вxoд, мaкcимaльнoe чиcлo элeмeнтoв нa кaждoe xeш-знaчeниe, чиcлo вxoдoв, cмeщeниe (в бaйтax) oт нaчaлa фaйлa к нaчaлy oпpeдeлeний.

Cлeдyющaя cтpoкa (и вce пocлeдyющиe cтpoки xeш-тaблицы) coдepжит paздeлeнныe пpoбeлoм элeмeнты (вxoды). Kaждaя cтpoкa coдepжит 8 вxoдoв. Kaждый вxoд coдepжит двa пoля: пepвoe (1 бaйт) - кoнтpoльнaя cyммa (пpeдcтaвлeнa кaк пeчaтный cимвoл), втopoe пoлe - yкaзaтeль (в бaйтax) нa oпpeдeлeниe пceвдoнимa. Укaзaтeль пpeдcтaвляeтcя шecтнaдцaтepичным чиcлoм (c нaчaльным пpoбeлoм, ecли нeoбxoдимo) и вceгдa cooтвeтcтвyeт нaчaлy oпpeдeлeния.

Koмaндa aliashash oбычнo вызывaeтcя кoмaндoй netutil (c флaгoм install). Ecли тpeбyeтcя пepeoпpeдeлить пceвдoним, cлeдyeт измeнить oпpeдeлeниe в фaйлe aliases и coздaть нoвый фaйл aliases.hash, иcпoльзyя кoмaндy aliashash. Hoвый фaйл alias.hash дoлжeн быть cкoпиpoвaн нa вce кoмпьютepы ceти.

ФАЙЛЫ

/usr/lib/mail/aliashash /usr/lib/mail/aliases /usr/lib/mail/aliases.hash /usr/lib/mail/maliases.hash

СМ. ТАКЖЕ

,

ЗАМЕЧАНИЯ

He cлeдyeт пpи paбoтaющeй ceти выпoлнять кoмaндy aliashash. Ecли этo нeoбxoдимo cдeлaть, лyчшe coздaть вpeмeнный xeшфaйл (иcпoльзyя флaг -o) и пepeимeнoвaть eгo в aliases.hash.



ALIASHASH(8)


НАЗВАНИЕ

aliashash - генератор хэш-таблицы псевдонимов Micnet-сети

СИНТАКСИС

aliashash [-v] [-o output-file] [input-file]

ОПИСАНИЕ

Команда aliashash читает файл input-file и формирует файл output-file, содержащий хэш-таблицу определений псевдонимов для Micnet-сетей. input-file должен задавать файл, содержащий определения псевдонимов в виде, описанном для файла aliases (см. aliases(5)). Если опция -o не используется для задания выходного файла output-file, то команда создает файл с тем же именем, что input-file, но с расширением .hash. Если файл input-file не задан, то команда читает файл /usr/lib/mail/aliases и создает файл /usr/lib/mail/aliases.hash .

При вызове с опцией -v команда выводит информацию о хэш-таблице.

Файл output-file содержит как определения псевдонимов, заданные в файле input-file, так и новую хэш-таблицу. Эта таблица находится в начале этого файла и отделена от определений псевдонимов пустой строкой. Хэш-таблица состоит из трех или более строк. Первая строка:

#<hash>

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

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

Команда aliashash обычно вызывается опцией install команды netutil. Если определения псевдонимов должны быть изменены, то следует изменить определения в файле aliases и создать новый файл aliases.hash с помощью команды aliashash. Новый файл alias.hash должен быть скопирован на все другие компьютеры сети.

ФАЙЛЫ

/usr/lib/mail/aliashash /usr/lib/mail/aliases /usr/lib/mail/aliases.hash /usr/lib/mail/maliases.hash

СМ. ТАКЖЕ

aliases(5),

ПРЕДУПРЕЖДЕНИЕ

Не запускайте команду aliashash для создания файла aliases.hash во время функционирования сети. При необходимости создайте временный выходной файл aliases.hash- с помощью опции -o и затем введите:

mv aliases.hash- aliases.hash

Это предохранит сеть от срыва.



ALTTRACK(4)


НАЗВАНИЕ

alttrack - альтернативные дорожки для дефектных дорожек диска

ОПИСАНИЕ

Блок 0 на дисковом томе содержит информацию о наличии и размещении дефектных дорожек, в виде следующей структуры.

#define ALTMAGIC 0XDBDF /* магическое число блока дефектных дорожек*/ #define ALTSIZE 512 /* размер области инфор- мации о дефектных до- рожках */ #define NICALT ALTSIZE/2-4 /* максимальное число альтернативных дорожек */

struct alttrack { unsigned short a_magic; /* магическое число */ unsigned short a_count; /* текущее количество дефектных дорожек */ unsigned short a_nicbad; /* максимальное число дефектных дорожек */ unsigned short a_base; /* начало карты */ unsigned short at_map [NICALT]; /* текущее ко- личество альтернативных дорожек */ };

Утилита alttrack(1M) позволяет отображать и задавать эту информацию в символьном виде.

Типичный результат работы alttrack(1M) -a, -r (или входная информация для -w) выглядит так:

#bad tracks from /dev/rdsk/sm3s7 #magic count max base 56287 3 3 4245 #tracks(cyl:head): 2:1 444:0 2123:0

Дорожка на цилиндре 2, головке 1 отображается на первую альтернативную дорожку 4245, дорожка на цилиндре 444, головке 0 - на следующую дорожку 4246. Эта дорожка, находящаяся на цилиндре 2123, головке 0, сама дефектна и отображается на следующую дорожку 4247.

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

Информация изготовителя об аппаратных дефектах, обрабатываемая командой 'alttrack -a', должна иметь вид:

для приводов с интерфейсом smd - 1 запись на дорожку:

long bid; /* идентификатор дорожки; < 0 для дефектной дорожки */ long bpos [4]; /* позиции ошибок (до 4-х) */ unsigned short bend; /* контрольный код 0xF000 */

для приводов с интерфейсом st506 - по 1 записи на каждой дорожке цилиндра 0:

long date; short zero [2]; {char cyl [2]; /* цилиндры, имеющие аппаратные дефекты */ char xxx [3];} [50] /* до 50 на поверхность */


Oбработка дефектных дорожек.

После выполнения 'mknod' для raw-устройства следует:

собрать информацию о дефектных дорожках диска


#alttrack -a /dev/rdsk/smls7 >/etc/badtrack/file ;

форматировать диск


#format /dev/rdsk/smls7 ;

записать информацию о дефектных дорожках на диск


#alttrack -w /dev/rdsk/smls7 </etc/badtrack/file .

Для добавления дефектной дорожки следует:

скорректировать блок 0:


увеличить счетчик count, при необходимости увеличить max и base, описать новую дефектную дорожку, занести информацию на диск утилитой alttrack.
Внимание! Запись информации о дефектных дорожках на диск приводит к потере всей информации на диске!;

создать новую файловую систему утилитой mkfs.

ФАЙЛЫ

/usr/include/sys/disk.h /etc/badtrack/*

СМ. ТАКЖЕ

alttrack(1M), .

Apropos(1)


НАЗВАНИЕ

apropos, whatis - поиск в базе данных по ключевому слову.

СИНТАКСИС

apropos ключевое слово... whatis ключевое слово...

ОПИСАНИЕ

apropos ищет установленные в файлах базы данных краткие описания системных команд по ключевому слову и выводит результат на стандартный вывод. Whatis показывает описание только для полного имени команды.

СМ. ТАКЖЕ

man(1), makewhatis(1).



AR(1)


НАЗВАНИЕ

ar - обслуживание мобильных архивов и библиотек

СИНТАКСИС

ar [-][d][r][q][t][p][m][x][v][c][l][s] [позиционирующее_имя] а_файл [имя ...]

ОПИСАНИЕ

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

При создании архива командой ar заголовки файлов строятся в формате, не зависящем от конкретной машины. Формат и структура мобильного архива подробно описаны в . Таблица имен архива (описанная там же) используется редактором связей [ld(1)] для сокращения числа проходов по библиотекам об ектных файлов. Команда ar создает и поддерживает таблицу имен только при наличии в архиве хотя бы одного об ектного файла. Таблица имен в случае ее создания помещается в начале архива в качестве файла с особым именем. Ни ссылка на этот файл, ни доступ к нему для пользователя невозможны. При создании или изменении архива командой таблица имен всякий раз перестраивается. Таблицу имен можно перестроить принудительно, воспользовавшись описанной ниже опцией s.

В отличие от командных опций командный ключ составляет обязательную часть командной строки ar. Ключ (которому может предшествовать символ -) представляет собой один из символов набора drqtpmx. Аргументами же ключа могут служить один или несколько символов из набора vuaibcls. Позиционирующее_имя - это имя элемента архива, которое используется в качестве указателя конкретного места архива, куда должны помещаться другие файлы. А_файл - это имя архивного файла. Под именами подразумеваются имена файлов, входящих в архив. Символам, образующим ключ, приписан следующий смысл:

d

Удалить указанные файлы из архива.

r

Заменить указанные файлы в архиве. Если в ключе наряду с r присутствует необязательный символ u, то замена будет произведена только для тех из указанных файлов, у которых дата последней модификации превышает соответствующую дату у одноименных файлов, хранящихся в архиве. Если ключ содержит признак позиционирования, т.е. один из необязательных символов abi, то в команде должен присутствовать аргумент позиционирующее_имя и в этом случае все новые файлы будут помещаться перед (b или i) или вслед за (a) файлом с таким именем. При отсутствии признака позиционирования новые файлы будут помещаться в конец архива.

q

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

t

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

p

Напечатать указанные файлы из архива.

m

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

x

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

<


/p>

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

c Подавить сообщение, выдаваемое обычно при создании а_файла.

l Помещать временные файлы в локальный (текущий рабочий) каталог, а не в подразумеваемый временный каталог TMPDIR.

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

ФАЙЛЫ

TMPDIR/* Временные файлы.

Обычно каталог TMPDIR - это /usr/tmp, однако данное соглашение можно изменить, присвоив переменной окружения TMPDIR другое значение [см. tempnam в ].

СМ. ТАКЖЕ

, , .

, a.out(4), в Справочнике программиста.

ПРИМЕЧАНИЯ

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

AR(4)


НАЗВАНИЕ

ar - формат архивного файла

СИНТАКСИС

#include <ar.h>

ОПИСАНИЕ

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

Каждый архив начинается с магической цепочки архива.

#define ARMAG "!<arch>\n" /* Магическая цепочка */ #define SAMARG 8 /* Длина магической цепочки */

Архив об ектных файлов обычного формата [см.a.out(4)] включает таблицу имен архива. Она используется редактором связей для определения того, какие элементы архива должны быть включены в результирующую программу при редактировании связей. Таблица имен архива (если она есть) всегда является первым файлом архива, однако не отображается при выдаче оглавления. Она автоматически порождается и корректируется командой .

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

#define ARFMAG "`\n" /* Ограничитель заголовка */

struct ar_hdr { /* Заголовок элемента архива */ char ar_name [16]; /* Имя элемента (в конце /) */ char ar_date [12]; /* Дата последней модификации */ char ar_uid [6]; /* Идентификатор владельца */ char ar_gid [6]; /* Идентификатор группы */ char ar_mode [8]; /* Режим элемента архива */ char ar_size; /* Длина элемента */ char ar_fmag [2]; /* Ограничитель заголовка */ };

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

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

Каждый элемент архива начинается с границы четного байта. Для этого между разделами, если нужно, вставляется символ перевода строки. Длина элемента в поле ar_size отражает точный размер без учета вставок.


Если архив включает таблицу имен, первый файл архива имеет имя нулевой длины (ar_name [0] == '/') и содержит следующую информацию:

Количество имен (занимает 4 байта). Массив смещений в архивном файле [занимает (4 * количество имен) байт]. Таблица цепочек символов - имен элементов архива (занимает остаток файла).

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

СМ. ТАКЖЕ

a.out(4).

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

ОГРАНИЧЕНИЯ

Команда удаляет все элементы таблицы имен. Для использования редактора связей их надо восстановить с помощью команды ar -ts.









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


НАЗВАНИЕ

archive - Инфoмaция oб ycтpoйcтвe coxpaнeния пo yмoлчaнию.

ОПИСАНИЕ

/etc/default/archive coдepжит инфopмaцию o иcпoльзyeмoм пo yмoлчaнию cиcтeмнoм ycтpoйcтвe coxpaнeния, иcпoльзyeмyю кoмaндoй sysadmin(C). Фopмaт oпиcaния ycтpoйcтвa имeeт cлeдyющий вид:

name = value [name = value] ...

value мoжeт coдepжaть пpoбeл, зaключeнный в aпocтpoфы, cимвoл нoвoй cтpoки дoлжeн быть экpaниpoвaн oбpaтнoй кocoй чepтoй.

Дaлee пpивeдeны имeнa, oпpeдeлeнныe для /etc/default/archive:

bdev Имя блoкopиeнтиpoвaннoгo ycтpoйcтвa. edev Имя бaйтopиeнтиpoвaннoгo ycpoйcтвa. size Beличинa тoмa в блoкax или фyтax. density Плoтнocть зaпиcи, нaпpимep 1600. Ecли этa вeличинa нeoпpeдeлeнa или paвнa нyлю, тo paзмep size зaдaн в блoкax; в пpoтивeнoм cлyчae oн зaдaн в фyтax. format Koмaндa, иcпoльзyeмaя для фopмaтиpoвaния apxивнoгo ycтpoйcтвa. blocking Koэффициeнт блoкиpoвки. dese Oпиcaниe ycтpoйcтвa, нaпpимep, "Cartrige Tape".

СМ. ТАКЖЕ

sysadmin(1)



AS(1)


НАЗВАНИЕ

as - стандартный ассемблер

СИНТАКСИС

as [-o об ектный_файл] [-n] [-m] [-R] [-dl] [-V] [-Y [md],каталог] файл

ОПИСАНИЕ

Команда as ассемблирует указанный файл. В любом порядке могут быть заданы следующие опции:

-o об'ектный_файл

Поместить результат в об'ектный_файл. По умолчанию имя выходного файла формируется из имени исходного файла удалением расширения .s, если такое существует, и добавлением расширения .o.

-n

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

-m

Перед ассемблированием запустить макропроцессор m4.

-R

Удалить исходный файл после ассемблирования.

-dl

Не помещать в об ектный файл информацию о номерах строк.

-V

Выдать номер версии ассемблера в стандартный протокол.

-Y [md],каталог

Искать препроцессор m4 (m) и/или файл предопределенных макросов (d) в указанном каталоге, а не в обычном месте.

ФАЙЛЫ

TMPDIR/* Временные файлы.

Обычно каталог TMPDIR - это /usr/tmp, однако данное соглашение можно изменить, присвоив переменной окружения TMPDIR другое значение [см. tempnam( ) в ].

СМ. ТАКЖЕ

, , , , .

, a.out(4) в Справочнике программиста.

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

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

СЮРПРИЗЫ

Директива ассемблера .align может не работать в секции команд (.text), если включена оптимизация.

ОГРАНИЧЕНИЯ

Арифметическое выражение может содержать не более одного имени, определяемого дальше.

ПРИМЕЧАНИЯ

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



ASA(1)


НАЗВАНИЕ

asa - интерпретация символов управления кареткой

СИНТАКСИС

asa [файл ...]

ОПИСАНИЕ

Команда asa интерпретирует выводимые данные Фортран-программ, в которых содержатся символы управления кареткой. Команда относится либо к файлам, имена которых заданы в качестве аргументов, либо к стандартному вводу, если аргументов нет. Предполагается, что первый символ каждой строки - управляющий; значения символов следующие:

пробел Продвижение на одну строку перед выполнением печати. 0 Продвижение на две строки перед выполнением печати. 1 Продвижение в начало новой страницы перед выполнением печати. + Повторная печать на той же строке.

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

Чтобы корректно печатались выходные файлы Фортран-программ, в которых присутствуют символы управления кареткой, команду asa можно использовать как фильтр:

программа | asa | lp

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

asa файл

СМ. ТАКЖЕ

, , , , .



ASCII(5)


НАЗВАНИЕ

ascii - таблица кодов ASCII

ОПИСАНИЕ

Файл /usr/pub/ascii содержит таблицу кодов ASCII в восьмеричном и шестнадцатеричном представлении:

000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 be 010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si 020 dle 021 dcl 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 et 030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us 040 sp 041 ! 042 " 043 # 044 $ 045 % 046 & 047 ' 050 ( 051 ) 052 * 053 + 054 , 055 - 056 . 057 / 060 0 061 1 062 2 063 3 064 4 065 5 066 6 067 7 070 8 071 9 072 : 073 ; 074 < 075 = 076 > 077 ? 100 @ 101 A 102 B 103 C 104 D 105 E 106 F 107 G 110 H 111 I 112 J 113 K 114 L 115 M 116 N 117 O 120 P 121 Q 122 R 123 S 124 T 125 U 126 V 127 W 130 X 131 Y 132 Z 133 [ 134 \ 135 ] 136 ^ 137 _ 140 ` 141 a 142 b 143 c 144 d 145 e 146 f 147 g 150 h 151 i 152 j 153 k 154 l 155 m 156 n 157 o 160 p 161 q 162 r 163 s 164 t 165 u 166 v 167 w 170 x 171 y 172 z 173 { 174 | 175 } 176 ~ 177 de

00 nul 01 soh 02 stx 03 etx 04 eot 05 enq 06 ack 07 bel 08 bs 09 ht 0a nl 0b vt 0c np 0d cr 0e so 0f si 10 dle 11 dcl 12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb 18 can 19 em 1a sub 1b esc 1c fs 1d gs 1e rs 1f us 20 sp 21 ! 22 " 23 # 24 $ 25 % 26 & 27 ' 28 ( 29 ) 2a * 2b + 2c , 2d - 2e . 2f / 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 9 3a : 3b ; 3c < 3d = 3e > 3f ? 40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G 48 H 49 I 4a J 4b K 4c L 4d M 4e N 4f O 50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W 58 X 59 Y 5a Z 5b [ 5c \ 5d ] 5e ^ 5f _ 60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g 68 h 69 i 6a j 6b k 6c l 6d m 6e n 6f o 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w 78 x 79 y 7a z 7b { 7c | 7d } 7e ~ 7f del


Если архив включает таблицу имен, первый файл архива имеет имя нулевой длины (ar_name [0] == '/') и содержит следующую информацию:

Количество имен (занимает 4 байта). Массив смещений в архивном файле [занимает (4 * количество имен) байт]. Таблица цепочек символов - имен элементов архива (занимает остаток файла).

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

СМ. ТАКЖЕ

a.out(4).

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

ОГРАНИЧЕНИЯ

Команда удаляет все элементы таблицы имен. Для использования редактора связей их надо восстановить с помощью команды ar -ts.









ASKTIME(8)


НАЗВАНИЕ

asktime - Выдает подсказку для введения правильного времени суток.

СИНТАКСИС

/etc/asktime

ОПИСАНИЕ

Эта команда выдает подсказку для введения времени суток. Вы должны ввести допустимое время в надлежащем формате, как определено ниже:

[[yy]mmdd]hhmm

Здесь первые mm - номер месяца, dd - номер дня месяца, hh - номер часа (в 24-часовой системе), вторые mm - минуты, yy - последние две цифры года (для ввода необязательны). Если год не указан, то по умолчанию берется текущий год.

ПРИМЕРЫ

В данном примере устанавливаются новое время, новая дата и год "11:29 April 20, 1985".

Current system time is Wed Nov 3 14:36:23 PST 1985 Enter time ([yymmdd]hhmm): 8504201129

ДИАГНОСТИКА

Если вы ввели недопустимое время, asktime выведет подсказку:

Try again:

ПРИМЕЧАНИЯ

asktime обычно выполняется автоматически сразу после загрузки системы посредством стартового файла /etc/rc, однако она может быть выполнена в любое время. Эта команда может быть выполнена только привилегированным пользователем.

Системы с автозагрузкой вызывают asktime автоматически при перезагрузке. На этих системах, если вы не введете новое время или не нажмете клавишу return в пределах 1 минуты, операционная система будет использовать имеющееся у нее значение времени. При простом нажатии RETURN установка времени не изменяется.



ASSERT(3X)


НАЗВАНИЕ

assert - проверка утверждений в программе

СИНТАКСИС

#include <assert.h>

assert (expression) int expression;

ОПИСАНИЕ

Данный макрос полезен для включения диагностики в программы. При выполнении assert, если значение выражения expression - ложь (0), assert выводит в стандартный протокол сообщение:

Assertion failed: expression, file xyz, line nnn

и аварийно завершается. В сообщении об ошибке xyz - это имя исходного файла, nnn - номер строки в исходном тексте, содержащей данный оператор assert.

При компиляции с опцией препроцессора -DNDEBUG [см. ] или с управляющим оператором препроцессора #define NDEBUG перед оператором #include <assert.h> команды для проверки утверждений включаться в программу не будут.

СМ. ТАКЖЕ

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

ОГРАНИЧЕНИЕ

Поскольку assert реализован как макрос, выражение expression не может содержать текстовых литералов.



ASSIGN(1)


НАЗВАНИЕ

assign, deassign - Назначает и отменяет устройства.

СИНТАКСИС

assign [ -u ][ -v ][ -d ][ device ]... deassign [ -u ][ -v ][ device ]...

ОПИСАНИЕ

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

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

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

ОПЦИИ

-d Выполняет действие отмены deassign. Опция -d может быть встроена в имена устройств device для того, чтобы назначать одни устройства и отменять другие. -v Дает многословный вывод. -u Подавляет назначение или отмену, но производит контроль ошибок.

Команда assign не назначит какое-то одно из назначаемых устройств, если она не может назначить все устройства. Команда deassign не выдает диагностику, если устройство device не может быть отменено. Устройства могут быть автоматически отменены при выходе пользователя, но это не гарантируется. Имена устройств device могут являться началом запрашиваемого устройства. Например,команда

assign fd

должна быть использована для назначения всех устройств на гибких магнитных дисках. Исходные версии устройства device будут также назначаться, например, исходные устройства на гибких магнитных дисках /dev/rfd? были бы присвоены в примере, приведенном выше.

Заметьте, что во многих установках назначаемые устройства, такие, как гибкие магнитные диски, имеют обычный доступ к чтению и записи, так что команда assign может быть ненужной. Это частично верно для однопользовательских систем. Устройствами, которые предполагается назначать этой командой, должен владеть пользователь asg. Каталог /dev должен , быть подчинен каталогу bin и имееть режим 755. Команда assign (после проверки на использование кем-то еще) сделает владельцем устройства любого, кто вызовет команду, без проверки разрешений к доступу. Это позволяет системному администратору устанавливать индивидуальные устройства , которые свободно доступны,назначаются (ими владеет пользователь asg) или не назначаются и защищены (ими не владеет пользователь asg и они имеют некоторые ограниченные режимы).

Заметьте, что когда команда assign вызывается в первый раз, она строит таблицу назначаемых устройств /etc/atab. Эта таблица используется при последующих вызовах для того, чтобы сохранить повторяющиеся переборы каталога /dev. Если одно из устройств в каталоге /dev меняется для назначения (т.е. чтобы им владел пользователь asg), тогда /etc/atab должна быть удалена (суперпользователем), чтобы в момент следующего вызова команды был построен правильный список.

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

Код выхода 0 возвращается в случае успешного завершения, 1 если есть проблемы, 2 - если устройство device не может быть назначено.



ASX(1)XENIX System V (21 июня 1987)


НАЗВАНИЕ

asx - acceмблep для XENIX 8086/186/286/386

СИНТАКСИС

asx [_______] source-file

ОПИСАНИЕ

Asx acceмблиpyeт иcxoдныe фaйлы и выдaeт пpигoдныe для кoмпoнoвки oбъeктныe мoдyли. Oбpaтитe внимaниe, чтo пoд XENIX cyщecтвyeт acceмблep , кoтopый и дoлжeн иcпoльзoвaтьcя в нoвыx paзpaбoткax.

Asx вocпpинимaeт тoлькo oдин иcxoдный фaйл source-file. Eгo имя дoлжнo имeть cyффикc ".s". Пoлyчaющийcя oбъeктный фaйл имeeт тo жe имя, нo c cyффикcoм ".o".

Cyщecтвyют cлeдyющиe флaги:

-a

Acceмблиpyeмыe ceгмeнты вывoдятcя в aлфaвитнoм пopядкe, a нe в пopядкe пepeчиcлeния иx в иcxoднoм фaйлe.

-d

Coздaeт лиcтинг пpoгpaммы в oбoиx пpoxoдax acceмблepa. Этoт лиcтинг мoжeт пpимeнятьcя для oбнapyжeния oшибoк paccинxpoнизaции мeждy двyмя пpoxoдaми. Ecли нe yкaзaн флaг -l, этoт флaг игнopиpyeтcя.

-Mu

B имeнax и cимвoлax пpoпиcныe и cтpoчныe бyквы нe paзличaютcя. Пpи этoм cимвoлы, oпpeдeляeмыe диpeктивaми EXTRN и PUBLIC, вывoдятcя вceгдa пpoпиcными бyквaми внe зaвиcимocти oт иx пepвoнaчaльнoгo нaпиcaния.

-Mx

Пpoпиcныe и cтpoчныe бyквы нe paзличaютcя вeздe зa иcключeниeм диpeктив EXTRN и PUBLIC. Этa диpeктивa cxoднa c пpeдыдyщeй, нo пoзвoляeт coxpaнить пepвoнaчaльнoe нaпиcaниe нeкoтopыx имeн.

-n

Пoдaвляeт гeнepaцию тaблицы имeн в лиcтингe пpoгpaммы. Этoт флaг игнopиpyeтcя, ecли нe yкaзaн флaг -l.

-o filename

Oбъeктный мoдyль пoмeщaeтcя в фaйл c имeнeм filename. Cyффикc пo yмoлчaнию нe пoдcтaвляeтcя.

-O

Bce чиcлoвыe знaчeния в лиcтингe вывoдятcя в вocьмepичнoм видe. Пo yмoлчaнию фopмaт вывoдa шecтнaдцaтepичный.

-r

Гeнepaция инcтpyкций пpoцeccopa 8087,287, a нe пpoгpaммныx пpepывaний для эмyляции oпepaций c плaвaющeй тoчкoй. Пoлyчeнныe тaким oбpaзoм oбъeктныe мoдyли мoгyт выпoлнятьcя тoлькo нa мaшинax, ocнaщeнныx тaкими пpoцeccopaми.

-X

Пepeчилять в лиcтингe вce ycлoвныe блoки, чeй oпepaтop IF выдaeт лoжнoe знaчeниe. Этo флaг мoжeт пepeoпpeдeлятьcя в иcxoднoм фaйлe диpeктивoй .TFCOND. Ecли флaг -l нe yкaзaн, дaнный флaг игнopиpyeтcя.

Пo yмoлчaнию pacпoзнaютcя тoлькo инcтpyкции пpoцeccopa 8086. Для pacпoзнaвaния инcтpyкций дpyгиx пpoцeccopoв в фaйлe дoлжны нaxoдитьcя инcтpyкции .186, .286c, .286p, .386, .8087, .287.

ФAЙЛЫ

/bin/asx

CМ. ТAКЖE

ЗAМEЧAНИЯ

Ecли флaг -r нe yкaзaн, пoдpaзyмeвaeтcя, чтo инcтpyкции пpoцeccopoв 8087/287 эмyлиpyютcя пpoгpaммными пpepывaниями. Этoт флaг дoлжeн иcпoльзoвaтьcя тoлькo нa мaшинax, ocнaщeнныx пoдoбными пpoцeccopaми.

Этoт acceмблep извecтeн тaкжe кaк acceмблep Pитчи. Oн иcпoльзoвaлcя дo ввeдeния кoмпилятopa Cи cmerge и нe coвмecтим c . Для кoмпoнoвки oбъeктныx мoдyлeй, пoлyчeнныx этим acceмблepoм, пoльзyйтecь .



AT(1)


НАЗВАНИЕ

at - планирование выполнения команд в определенное время

СИНТАКСИС

at время [дата] [+задержка] at -r идентификатор_задания ... at -l [идентификатор_задания ...]

ОПИСАНИЕ

Команда at в первом из приведенных вариантов читает со стандартного ввода задание, выполнение которого планируется на указанное время. Смысл опций двух других вариантов команды at таков:

-rУдалить задания, запланированные ранее с помощью at или , по идентификаторам_заданий. Идентификаторы сообщаются командами at и batch. Их можно узнать также по команде at -l. Только суперпользователь может удалять чужие задания.

-lВывести информацию о запланированных заданиях по идентификаторам_заданий. Если идентификаторы не указаны, выдается список всех заданий, запланированных пользователем и еще не выполненных.

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

Пользователю разрешается выполнять команду at только при условии, что его имя встречается в файле /usr/lib/ cron/at.allow. Если этого файла не существует, то проверяется файл /usr/lib/cron/at.deny, для того чтобы узнать, не запрещен ли пользователю доступ к at. Если оба файла отсутствуют, то только суперпользователю разрешено планировать выполнение задания. Если файл at.deny пуст, а at.allow отсутствует, то эти действия могут выполнять все. Файлы at.allow и at.deny содержат по одному имени в строке. Модифицировать эти файлы может только суперпользователь.

Время может быть указано 1, 2 или 4 цифрами. Если время состоит из одной или двух цифр, то оно обозначает часы; четырехзначное число обозначает часы и минуты. Время также может быть задано как два числа, разделенные двоеточием, что понимается как часы:минуты. Могут быть добавлены суффиксы am (до полудня) или pm (после полудня), в противном случае часы указываются от 0 до 23. Если необходимо указать время по Гринвичу, то можно добавить суффикс zulu. Распознаются специальные имена noon (полдень), midnight (полночь), now (сейчас), и next (следующий).


Дата может быть указана двумя способами: во-первых, в виде названия месяца, за которым следует число [и, может быть, год (через запятую)], а во-вторых, как день недели (полностью или сокращенный до 3 букв). Распознается два специальных "дня" today (сегодня) и tomorrow (завтра). Если дата не задана, то предполагается сегодняшняя дата, если указанное время больше, чем текущее, и завтрашняя, если меньше. Если заданный месяц меньше, чем текущий и год явно не задан, то предполагается, что имеется в виду следующий год.

Дополнительная задержка представляет собой просто число, за которым следует одно из следующих слов: minutes (минуты), hours (часы), days (дни), weeks (недели), months (месяцы), или years (годы). Можно указывать единицу измерения и без числа, например at now +minutes.

Далее приведены примеры корректных команд:

at 0815am Jan 16 at 8:15am Jan 16 at now +1 day at 5 pm Friday

Команда at выдает идентификатор задания и запланированное время его выполнения в стандартный протокол.

ПРИМЕР

Чтобы задание могло снова себя запланировать, следует вызвать at из shell-файла (назовем его sfile), включив в файл текст такого вида:

echo "sh sfile" | at 1900 thursday next week

ФАЙЛЫ

/usr/lib/cron

Основной каталог команд, связанных со временем. /usr/lib/cron/at.allow

Список пользователей, которым разрешено выполнять команды at и batch. /usr/lib/cron/at.deny

Список пользователей, которым запрещено выполнять команды at и batch. /usr/lib/cron/queuedefs

Информация о планировании. /usr/spool/cron/atjobs

Область накопления вывода.

СМ. ТАКЖЕ

, , , , .

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

ДИАГНОСТИКА

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

СЮРПРИЗЫ

Попытка выполнить команду at now приводит к сообщению

at: too late

(слишком поздно).









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


НАЗВАНИЕ

autoboot - aвтoмaтичecкaя зaгpyзкa cиcтeмы

ОПИСАНИЕ

Для cиcтeмы мoжeт быть ycтaнoвлeнo выпoлнeниe boot (coглacнo /etc/default/boot) aвтoмaтичecки, кoгдa кoмпьютep включaeтcя, пpи ycлoвии, чтo ни oднa клaвишa нe нaжимaeтcя в oтвeт нa пoдcкaзкy boot(HW).

Ecли вpeмя oжидaния ввoдa иcтeклo (тaйм-ayт) и LOADXENIX=YES, тo XENIX пocылaeтcя cлoвo "auto" в зaгpyзoчнyю cтpoкy, , , asktime(1) пocылaeтcя флaг -a.

Пpoцeдypa autoboot выпoлняeтcя в cooтвeтcтвии c инcтpyкциями, coдepжaмиcя в фaйлe /etc/default/boot:

LOADXENIX=YES или NO Бyдeт или нeт ocyщecтвлятьcя зaгpyзкa XENIX пo тaйм-ayтy boot(HW). FSCKFIX=YES или NO Ecли пepeмeннaя ycтaнoвлeнa в YES, тo выпoлняeтcя для кopнeвoй фaйлoвoй cиcтeмы c флaгoм -rr. MULTIUSER=YES или NO Бyдeт вызывaть sulogin или выпoлнитcя пepexoд в мнoгoпoльзoвaтeльcкий peжим. PANICBOOT=YES или NO Бyдeт или нeт ocyщecтвлятьcя пepeзaгpyзкa пocлe panic. RONLYROOT=YES или NO Бyдeт или нeт кopнeвaя фaйлoвaя cиcтeмa дocтyпнa тoлькo для чтeния. YES иcпoльзyeтcя тoлькo вo вpeмя ycтaнoвки cиcтeмы и нe дoлжнo иcпoльзoвaтьcя пpи нopмaльнoй зaгpyзкe. DEFBOOTSTR=bootstring Уcтaнaвливaeт знaчeниe зaгpyзoчнoй cтpoки в bootstring. Этa cтpoкa иcпoльзyeтcя тoлькo в cлyчaяx, кoгдa нaжaтa клaвишa <RETURN> в oтвeт нa пoдcкaзкy "boot:", или пpи тaйм-ayтe boot. SYSTTY=x Ecли x ecть нoль (0), cитeмнaoй кoнcoли cooтвeтcтвyeт пocлeдoвaтeльный aдaптep, ecли x paвнo 1,- ocнoвнoй aдaптep.

B cлyчae oтcyтcтвия нeoбxoдимoй пepeмeннoй в фaйлe /etc/default/boot или oтcyтcтвия caмoгo фaйлa пoдpaзyмeвaeтcя, чтo знaчeниeм cooтвeтcтвyщeй пepeмeннoй являeтcя NO. Oднaкo, пpи oтcyтcтвии фaйлoвoй cиcтeмы знaчeниeм PANICBOOT являeтcя YES.

Фaйл /etc/default/boot пo yмoлчaнию имeeт cлeдyющий вид:

LOADXENIX=YES FSCKFIX=YES MULTIUSER=YES PANICBOOT=NO

Для fsck нeoбxoдим paбoчий фaйл для пpoвepки бoльшoй фaйлoвoй cиcтeмы. Пoльзoвaтeль инфopмиpyeтcя oб этoм вo вpeмя ycтaнoвки XENIX. Ecли нeoбxoдимo, пpи ycтaнoвкe cиcтeмы coздaeтcя paбoчaя фaйлoвaя cиcтeмa /dev/scratch для зaпиcи вpeмeнныx фaйлoв fsck. Fsck иcпoльзyeт кaк paбoчий фaйл, имя кoтopoгo oпpeдeлeнo в /etc/default/boot cтpoкoй


SCRATH=

SCRATCH нeoбxoдимo oпpeдeлять тoлькo в cлyчae, ecли фaйлoвaя cиcтeмa вeликa нacтoлькo, чтo пpи ee пpoвepкe тpeбyeтcя вpeмeнный фaйл. Ecли имя paбoчeгo фaйлa oпpeдeлeнo, oнo иcпoльзyeтcя fsck дaжe в тoм cлyчae, кoгдa boot выпoлняeтcя нe aвтoмaтичecки. Eдинcтвeнным иcключeниeм являeтcя нaчaлo зaгpyзки XENIX c диcкa, кoгдa тpeбyeтcя yкaзaть paбoчий фaйл. Фaйл, oпpeдeлeнный кaк SCRATCH, нe дoлжeн пpинaдлeжaть тoй фaйлoвoй cиcтeмe, кoтopaя пpoвepяeтcя c пoмoщью fsck. SCRATCH тaкжe нe дoлжeн нaxoдитcя в нecмoнтиpoвaннoй фaйлoвoй cиcтeмe.

Ecли cиcтeмнaя пoчтa ycтaнoвлeнa в cиcтeмe, пopядoк зaгpyзки пepecылaeтcя в aдpec root. B пpoтивнoм cлyчae, cиcтeмный aдминиcтpaтop дoлжeн пpoвepить пopядoк зaгpyзки пo фaйлy /etc/bootlog. Bывoд вpeмeннo coxpaняeтcя в фaйлe /dev/recover дo тoгo, кaк пepecылaeтcя в /etc/bootlog, и в зaвepшeниe мoжeт быть пocлaн cиcтeмнoмy aдминиcтpaтopy пo пoчтe.

Дpyгиe флaги boot, иcпoльзyeмыe пpи aвтoмaтичecкoй зaгpyзкe, oпиcaны в boot(HW).

ФАЙЛЫ



/etc/bootlog вывoд boot для aвтoзaгpyзки cиcтeмы

/etc/default/boot инфopмaциoнный фaйл зaгpyзки

/etc/rc инcтpyкции для пepexoдa в мнoгoпoльзoвaтeльcкий peжим, включaя мoнтиpoвaниe и пpвepкy фaйлoвыx cиcтeм

/dev/recover coxpaнeниe вывoдa fsck

/dev/scratch paбoчий фaйл fsck для бoльшиx фaйлoвыx cиcтeм

СМ. ТАКЖЕ

boot(HW), ,

ЗАМЕЧАНИЯ

Koмaнды, иcпoльзyeмыe вo вpeмя зaгpyзки c флaгoм -a, вызывaютcя пo тaйм-ayтy тoлькo вo вpeмя выпoлнeния autoboot. Haпpимep, вызывaeтcя пo тaйм-ayтy чepeз 30 ceкyнд пpи выпoлнeнии autoboot, нo пpи любoм дpyгoм вызoвe ждeт oтвeтa пoльзoвaтeля.

Peжимы boot, cyщecтвoвaвшиe в бoлee paнниx вepcияx, тaкиe кaк AUTO=CLEAN, DIRTY, NEVER, мoгyт быть иcпoльзoвaны для coвмecтимocти.









AUTOBOOT(8)


НАЗВАНИЕ

autoboot - Автоматически загружает систему.

ОПИСАНИЕ

Можно установить систему на автоматическое прохождение стадий загрузки (как определено в /etc/default/boot) при включении (загрузке) компьютера, при условии, что на подсказку boot(HW) не нажимается никакая клавиша.

Если время ожидания ввода на загрузочную подсказку истекает и LOADXENIX=YES, тогда системе передается в загрузочную строку слово "auto", командам init(5), и передается аргумент -a.

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

Процедура autoboot проверяет файл /etc/default/boot на наличие следующих инструкций по автозагрузке:

LOADXENIX=YES или NO boot(HW) либо ждет истечения заданного срока и загружает систему XENIX, либо нет. boot ищет эту переменную в файле /etc/default/boot на устройстве определяемом по умолчанию. FSCKFIX=YES или NO fsck(8) либо исправляет затруднения, возникшие с корневой системой, либо нет. Если эта переменная установлена в YES, то fsck(ADM) запускается для корневой системы с аргументом -rr. MULTIUSER=YES или NO init(5) либо вызовает sulogin или переходит в многопользовательский режим, либо нет. PANICBOOT=YES или NO После сбоя panic() система либо перезагружается, либо нет. Эта переменная читается командой init из файла /etc/default/boot. RONLYROOT=YES или NO Корневая файловая система монтируется либо с режимом доступа readonly (только для чтения), либо нет. Следует использовать только во время инсталляции, но не для нормальной загрузки. Эффективно защищает от записи в файловую систему. DEFBOOTSTR=bootstring Устанавливает загрузочную строку, воспринимаемую по умолчанию, в bootstring. Это - строка, используемая при загрузке, когда пользователь на подсказку "Boot:" нажимает просто RETURN или когда истекает срок ожидания реакции на эту подсказку. SYSTTY=x Если x равно 1, то системная консоль устанавливается на последовательный адаптер COM, если же x равно 0, то системная консоль устанавливается на главный адаптер дисплея. TIMEOUT=n где n - количество секунд ожидания ввода на подсказку "Boot:" перед загрузкой ядра (если LOADXENIX=YES). Если величина TIMEOUT не задана, то по умолчанию устанавливается одна минута.


Если нужная переменная или файл /etc/default/boot не могут быть найдены, то переменная устанавливается в NO. Но если не обнаружена файловая система, то значением PANICBOOT будет YES.

Файл /etc/default/boot поставляется со следующими установками по умолчанию:

LOADXENIX=YES FSCKFIX=YES MULTIUSER=YES PANICBOOT=NO

Для проверки больших файловых систем команде fsck требуется файл scratch. Во время инсталляции системы XENIX пользователю сообщается, нуждается ли система в файле scratch для работы fsck. Если да, то инсталляционная процедура создает файловую систему /dev/scratch для записи временного файла команды fsck. В качестве файла scratch команда fsck использует имя, заданное в файле /etc/default/boot в строке

SCRATCH=

Если инсталляционная процедура создает фаловую систему scratch, то эта запись в файле /etc/default/boot формируется автоматически.

Строка SCRATCH должна быть задана только в том случае, если корневая файловая система достаточно велика и нуждается в наличии указанного временного файла. Если этот файл задан, то он всегда передается команде fsck при проверке корневой файловой системы, даже когда система загружается вручную. Единственным исключением является первый раз, когда система XENIX загружается с жесткого диска и когда пользователь должен задать файл scratch. Файл, заданный в строке SCRATCH, не должен находиться в проверяемой fsck файловой системе. Он не может также быть в несмонтированной файловой системе.

Если на машине установлена почтовая система XENIX, , то выдача загрузочной последовательности направляется почтой в root. В противном случае администратор системы должен искать выдачу загрузочной последовательности в файле /etc/bootlog. Выдача fsck(ADM) временно сохраняется в файле /dev/recover, прежде чем быть перемещенной в /etc/bootlog, и, наконец, может быть послана администратору системы с помощью mail.

ФАЙЛЫ

/etc/bootlog файл регистрации выходной загрузочной информации для систем с автозагрузкой /etc/default/boot файл загрузочной информации /etc/rc файл инструкций для вхождения в многопользовательский режим, включающий монтировку и проверку дополнительных файловых систем /etc/sulogin файл, выполняемый при запуске и предлагающий пользователю нажать Ctrl-d для входа в многопользовательский режим или ввести пароль привилегированного пользователя для входа в режим обслуживания системы /dev/recover предназначен для сохранения выдачи fsck /dev/scratch временный файл команды fsck для больших файловых систем

СМ. ТАКЖЕ

, init(5)

ПРИМЕЧАНИЯ

Утилиты, вызываемые во время загрузочной процедуры, получают флаг -а и ждут истечения срока TIMEOUT, только при автозагрузке системы. Например, при автозагрузке системы срок ожидания asktime(ADM) заканчивается через 30 секунд, но при других обстоятельствах своего вызова она ждет ввод пользователя неограниченно.

Загрузочные режимы предыдущих версий AUTO=CLEAN, DIRTY, NEVER были оставлены для обеспечения обратной совместимости, но игнорируются, если имеются другие, более новые режимы.









AWK(1)


НАЗВАНИЕ

awk - сопоставление с шаблонами и преобразование текста

СИНТАКСИС

awk [-Fсимвол] [[-f] программа] [аргумент ...] [файл ...]

ОПИСАНИЕ

Команда awk сопоставляет строки исходных файлов с шаблонами, определенными в программе. Шаблоны можно задать либо непосредственно в командной строке, либо поместить в файл с именем программа и воспользоваться опцией -f. Если шаблоны указаны в командной строке, их следует заключить в одинарные кавычки ('), чтобы избежать интерпретации shell'ом.

Команде awk могут быть переданы аргументы в виде x=... y=... и т.д. (см. ПРИМЕРЫ).

Файлы читаются в том порядке, как они заданы. Если не указано ни одного файла или задано имя -, используется стандартный ввод. Ввод для awk делится на записи, разделяемые специальным символом. По умолчанию это перевод строки; в таком случае awk обрабатывает ввод построчно. Разделитель записей можно изменить, переопределив переменную RS. Каждая запись делится на поля, ограниченные разделителями полей (по умолчанию - пробелами). Этот разделитель можно изменить, переопределив переменную FS или указав флаг -Fсимвол. Поля исходных строк доступны по именам $1, $2,...; $0 - вся входная строка.

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

шаблон { действие }

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

Действие есть последовательность операторов. Так как шаблоны и действия могут быть опущены, то, чтобы различать их в программе, последние надо брать в фигурные скобки. Оператор есть одна из конструкций:


if ( условие ) оператор [ else оператор ] while ( условие ) оператор for ( выражение; условие; выражение ) оператор break continue { [ оператор ] ... } переменная = выражение print [ список_выражений ] [> выражение ] printf формат [, список_выражений ] [> выражение ] next # пропустить оставшиеся шаблоны и перейти к следующей строке exit # пропустить оставшиеся строки

Операторы завершаются точкой с запятой, переводом строки или правой скобкой. Пустой список_выражений означает всю строку. Выражения строятся из цепочек символов и чисел с помощью операций +, -, *, /, % и конкатенации (обозначается пробелом). В выражениях также можно использовать операции из языка C: ++, --, +=, -=, *=, /=, %=. Переменные инициализируются пустыми цепочками. Переменные могут быть скалярами, элементами массива (обозначается x[i]) или полями. Индексами массива могут служить любые (не обязательно числовые) цепочки символов, что позволяет реализовать разновидность ассоциативной памяти. Цепочки символов заключаются в двойные кавычки (").

Оператор print выдает свои аргументы на стандартный вывод (или в файл, если присутствует часть >выражение), разделяя их текущим разделителем полей и завершая каждую запись выходным разделителем записей. Оператор printf делает то же самое, но под управлением формата [см. ].

Встроенная функция length возвращает длину своего аргумента, рассматривая его как цепочку символов; если аргумент опущен, то возвращается длина текущей строки. Определены также следующие встроенные функции: exp, log, sqrt и int (int отбрасывает дробную часть своего аргумента). Функция substr(s, m, n) возвращает n-символьную подцепочку цепочки s, начинающуюся с позиции m. Функция sprintf(формат, выражение, выражение,...) преобразует выражения в соответствии с указанным форматом [см. ] и возвращает полученную цепочку символов.

Шаблон - это произвольная логическая комбинация, составленная с помощью операций !, , && и скобок из регулярных выражений и выражений сравнения. Регулярные выражения обрамляются символами / [подробнее см. ]. Отдельное регулярное выражение в шаблоне сопоставляется со всей строкой. Регулярные выражения могут входить и в выражения сравнения. Шаблон может состоять из двух шаблонов, разделенных запятой; при этом указанные действия выполняются для всех строк между строкой, удовлетворяющей первому шаблону, и строкой, удовлетворяющей второму шаблону.



Выражение сравнения - это одна из следующих конструкций:

выражение опер_сопост регулярное_выражение выражение опер_сравн выражение

где опер_сравн - любая из шести операций сравнения языка C, опер_сопост это ~ (содержится) или !~ (не содержится).

Условие - это арифметическое выражение, выражение сравнения или их логическая комбинация.

Для выполнения каких-либо действий перед первой или после последней строки определены специальные шаблоны BEGIN и END. BEGIN должен быть первым шаблоном, END - последним. Например, для использования символа c в качестве разделителя полей можно либо запустить программу с опцией -Fc, либо указать

BEGIN { FS = c }

Остальные специальные переменные:

NF Количество полей в текущей записи. NR Порядковый номер текущей записи. FILENAME Имя файла, из которого в данный момент производится ввод. OFS Разделитель полей при выводе, по умолчанию пробел. ORS Разделитель записей при выводе, по умолчанию перевод строки. OFMT Формат вывода чисел, по умолчанию %.6g.

ПРИМЕРЫ

Вывести строки файла f1, содержащие более 72 символов:

awk 'length > 72' f1

Вывести первые два поля файла f2 в обратном порядке:

awk '{ print $2, $1 }' f2

Сложить числа, стоящие в первом столбце файла f3, вывести сумму и среднее арифметическое:


В файле prog:

{ s += $1 } END { print "sum is", s, " average is", s/NR }

Командная строка:

awk -f prog f3

Вывести поля файла f4 в обратном порядке:

awk '{ for (i = NF; i > 0; --i) print $i }' f4

Вывести все строки файла f5, находящиеся между парами start/stop

awk '/start/,/stop/' f5

Вывести те строки файла f6, у которых первое поле не совпадает с первым полем предыдущей строки:

awk '$1 != prev { print; prev = $1 }' f6

Распечатать файл f7, вставляя после слова "Page" номер страниц, начиная с пятой:


В файле prog:

/Page/ { $2 = n++ } { print }

Командная строка:

awk -f prog n=5 f7

СМ. ТАКЖЕ

, , .

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

СЮРПРИЗЫ

Входные пробелы не сохраняются при выводе, если поля этой записи подвергались изменениям.

В языке команды awk отсутствуют явные преобразования между цепочками символов и числами. Чтобы выражение трактовалось как число, прибавьте к нему 0; чтобы трактовалось как цепочка - сконкатенируйте его с пустой цепочкой ""









CTIME(3C)


НАЗВАНИЕ

ctime, localtime, gmtime, asctime, cftime, ascftime, tzset - преобразование даты и времени в цепочку символов

СИНТАКСИС

#include <sys/types.h>

#include <time.h>

char *ctime (clock) time_t *clock;

struct tm *localtime (clock) time_t *clock;

struct tm *gmtime (clock) time_t *clock;

char *asctime (tm) struct tm *tm;

extern long timezone;

extern int daylight;

extern char *tzname[2];

void tzset ( )

ОПИСАНИЕ

Аргументом функций ctime, localtime и gmtime служит указатель clock на значение типа time_t, описанного во включаемом файле . Это значение интерпретируется как число секунд, отсчитываемое от 00:00:00 1 января 1970г. всемирного времени. Функция ctime возвращает указатель на цепочку из 26 символов вида

Sun Jan 16 01:03:52 1987\n\0

где все поля имеют постоянную длину.

Функции localtime и gmtime возвращают указатели на "tm"-структуры, описанные ниже. Localtime вносит поправку на часовой пояс и, возможно, на летнее время; gmtime осуществляет преобразование непосредственно ко всемирному времени, используемому в системе UNIX.

Функция asctime преобразует "tm"-структуру в цепочку из 26 символов (подобную приведенной выше) и возвращает указатель на эту цепочку.

Об явления всех функций, внешних об ектов, а также "tm"-структуры содержатся во включаемом файле . Описание структуры выглядит так:

struct tm { int tm_sec; /* Секунды (0-59) */ int tm_min; /* Минуты (0-59) */ int tm_hour; /* Часы (0-23) */ int tm_mday; /* День месяца (1-31) */ int tm_mon; /* Месяц года (0-11) */ int tm_year; /* Год - 1900 */ int tm_wday; /* День недели (Воскресенье = 0) */ int tm_yday; /* День года (0-365) */ int tm_isdst; };

Отличие tm_isdst от нуля указывает на то, что используется летнее время.

Внешняя переменная timezone типа long содержит разницу в секундах между всемирным временем и местным поясным временем. Скажем, для Восточного поясного времени EST (см. ПРИМЕЧАНИЯ) эта разница составляет 5*60*60. Внешняя переменная daylight отлична от нуля тогда и только тогда, когда должно осуществляться преобразование к летнему времени в соответствии со стандартом США. Программа учитывает особенности этого преобразования в 1974, 1975 годах; при необходимости перечень таких лет может быть расширен.

При наличии переменной окружения с именем TZ, функция asctime использует значение этой переменной для задания часового пояса, отличного от подразумеваемого. Значение TZ представляет из себя трехбуквенное название местного поясного времени (см. ПРИМЕЧАНИЯ), за которым следует число, выражающее отставание поясного времени от гринвичского в часах и далее, возможно, следует трехбуквенное название летнего времени, действующего в данном поясе. К примеру, для Нью-Джерси следует установить значение EST5EDT. Исходя из установленного TZ можно изменить значения внешних переменных timezone и daylight, а во внешнюю переменную


char *tzname[2] = {"EST", "EDT"};

поместить названия временных шкал. Эти изменения осуществляет функция tzset; обычно она вызывается функцией asctime, но может быть вызвана пользователем и явно.

Следует иметь в виду, что для большинства реализаций системный профайл /etc/profile содержит присваивание переменной TZ [см. , timezone(4)].

СМ. ТАКЖЕ

, , , timezone(4), .

СЮРПРИЗЫ

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

ПРИМЕЧАНИЯ

Всемирным временем называют поясное время 0-го часового пояса, которое представляет из себя местное среднее солнечное время гринвичского меридиана; обозначается GMT (Greenwich Mean Time).

Московское время опережает всемирное на 3 часа.(Это так называемое декретное московское время - не путать с поясным!)

Поясное время Москвы, лежащей во 2-м часовом поясе, опережает всемирное на 2 часа.

Московское летнее время опережает всемирное на 4 часа.

Основная территория США покрывается 4-мя часовыми поясами, то есть 16-м, 17-м, 18-м, 19-м, носящими соответственно специальные названия: Pacific (Тихоокеанский), Mountain (Горный), Central (Центральный), Eastern (Восточный). В них действует соответствующее поясное (Standard) и во всех штатах основной территории, за исключением Аризоны, летнее (Daylight [Saving]) время (Time). Отсюда сокращенные названия: PST, MST, CST, EST, а также PDT, MDT, CDT, EDT.









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) дает непредсказуемые результаты. % Печать символа %; выводимых значений не требуется.



Если порядок вещественного числа точкой равен 0x7FF, то число изображается в виде

[-]NaN0xdddddddd

где 0xdddddddd - шестнадцатеричное представление старших 32 бит мантиссы.

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

ПРИМЕРЫ



Программа, печатающая свой текст (она должна быть набрана на одной строке):

char*t="char*t=%c%s%c;main(){char q=%d; printf(t,q,t,q,q);}"; main(){char q=34;printf(t,q,t,q,q);}

Разобраться в этой программе предоставляется читателю. Отметим только, что в обращении к функции printf первое вхождение t задает формат, а второе трактуется как обычное выводимое значение. Формат содержит как обычные символы, которые выводятся без изменений, так и спецификаторы преобразований. Напечатать число "pi" с пятью десятичными знаками:

printf("pi = %.5f", 4*atan(1.0));

СМ. ТАКЖЕ

, , , .









STRTOD(3C)


НАЗВАНИЕ

strtod, atof - преобразование цепочки символов в вещественное число двойной точности

СИНТАКСИС

double strtod (str, ptr) char *str, **ptr;

double atof (str) char *str;

ОПИСАНИЕ

Результатом функции strtod является вещественное число двойной точности, заданное цепочкой символов, на которую указывает аргумент str. Цепочка просматривается до первого нераспознаваемого символа.

Функция strtod распознает: последовательность пробельных символов [см. макрос isspace в ], знак числа, цепочку цифр, содержащую необязательную точку, и порядок, состоящий из символа e или E, необязательного знака порядка или пробела, и целого числа. Часть перечисленных компонентов может отсутствовать.

Если аргумент ptr не равен (char **) NULL, то в слове, на которое он ссылается, возвращается указатель на символ, вызвавший завершение просмотра. Если число сформировать не удается, то *ptr устанавливается равным str, и в качестве результата возвращается ноль.

Atof (str) эквивалентно strtod (str, (char **) NULL).

СМ. ТАКЖЕ

, , .

ДИАГНОСТИКА

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



STRTOL(3C)


НАЗВАНИЕ

strtol, atol, atoi - преобразование цепочки символов в целое число

СИНТАКСИС

long strtol (str, ptr, base) char *str, **ptr; int base;

long atol (str) char *str;

int atoi (str) char *str;

ОПИСАНИЕ

Результатом функции strtol является целое число типа long, заданное цепочкой символов, на которую указывает аргумент str. Цепочка просматривается до первого символа, несовместимого с выбранной системой счисления. Начальные пробельные символы [см. макрос isspace в ] игнорируются.

Если аргумент ptr не равен (char **) NULL, то в слове, на которое он ссылается, возвращается указатель на символ, вызвавший завершение просмотра. Если число сформировать не удается, то *ptr устанавливается равным str и в качестве результата возвращается ноль.

Если аргумент base положителен (и не превосходит 36), то он рассматривается как основание системы счисления. После необязательного знака могут следовать незначащие нули, которые игнорируются, а если основание равно 16, то игнорируются комбинации символов 0x и 0X.

Если аргумент base равен нулю, то основание определяется по составу символов цепочки: если после необязательного знака находится символ 0, то число считается восьмеричным, если 0x или 0X - то шестнадцатеричным, если любая другая цифра - десятичным.

Atol (str) эквивалентно strtol (str, (char **) NULL, 10).

Atoi (str) эквивалентно (int) strtol (str, (char **) NULL, 10).

СМ. ТАКЖЕ

, , .

СЮРПРИЗЫ

Переполнение игнорируется.



TRIG(3M)


НАЗВАНИЕ

trig: sin, cos, tan, asin, acos, atan, atan2 - тригонометрические функции

СИНТАКСИС

#include <math.h>

double sin (x) double x;

double cos (x) double x;

double tan (x) double x;

double asin (x) double x;

double acos (x) double x;

double atan (x) double x;

double atan2 (y, x) double x, y;

ОПИСАНИЕ

Функции sin, cos и tan возвращают, соответственно, синус, косинус и тангенс своего аргумента, заданного в радианах.

Функция asin возвращает значение arcsin (x) в диапазоне от - П/2 до П/2.

Функция acos возвращает значение arccos (x) в диапазоне от 0 до П.

Функция atan возвращает значение arctg (x) в диапазоне от - П/2 до П/2.

Функция atan2 возвращает значение arctg (y/x) в диапазоне от - П до П, используя знаки обоих аргументов для определения квадранта, которому должно принадлежать возвращаемое значение.

СМ. ТАКЖЕ

.

ДИАГНОСТИКА

При вычислении значений функций sin, cos и tan для значений аргумента, далеких от нуля, происходит потеря точности. При достаточно больших значениях аргумента, когда происходит полная потеря значимости, эти функции возвращают нулевое значение; при этом в стандартный протокол будет выдано соответствующее сообщение. В не столь крайнем случае, когда происходит лишь частичная потеря значимости, сообщение об ошибке не выдается. В обоих случаях переменной errno присваивается значение ERANGE.

Если абсолютная величина аргумента функций asin или acos превышает 1, либо оба аргумента функции atan2 равны нулю, то будет возвращено нулевое значение, а переменной errno присвоено значение EDOM. Кроме того, в стандартный протокол будет выдано сообщение о выходе за границы области определения.

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