ИМЯ
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н) */
ИМЯ
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 - аварийное завершение процесса
СИНТАКСИС
int abort ( )
ОПИСАНИЕ
Функция abort работает так же, как системный вызов , но вместо просто выхода (завершения процесса) abort посылает сигнал SIGABRT (6) вызывающему процессу. Если сигнал SIGABRT не перехватывается и не игнорируется, то прежде, чем он будет послан, выталкиваются все буфера, связанные со стандартным пакетом ввода/вывода , и порождается файл с образом памяти.
Функция abort возвращает значение системного вызова .
СМ. ТАКЖЕ
, , .
в Справочнике пользователя.
ДИАГНОСТИКА
Если сигнал SIGABRT не перехватывается и не игнорируется, и имеется право на запись в текущий каталог, то порождается файл с образом памяти и средствами shell'а выдается сообщение "abort - core dumped".
НАЗВАНИЕ
abs - вычисление абсолютной величины
СИНТАКСИС
int abs (i) int i;
ОПИСАНИЕ
Функция abs возвращает абсолютную величину указанного в обращении к ней целочисленного аргумента.
СМ. ТАКЖЕ
.
СЮРПРИЗЫ
Абсолютная величина наибольшего по модулю отрицательного числа будет равна этому числу, то есть окажется отрицательной.
НАЗВАНИЕ
accept, reject - разрешение или запрет запросов на печать
СИНТАКСИС
/usr/lib/accept адресат ... /usr/lib/reject [-r [причина]] адресат ...
ОПИСАНИЕ
Команда accept разрешает команде удовлетворять запросы, относящиеся к указанным адресатам. Адресатом может быть либо строчный принтер, либо класс принтеров. Для определения состояния адресатов применяется команда .
Команда reject запрещает команде удовлетворять запросы, относящиеся к указанным адресатам. Адресатом и здесь может быть либо строчный принтер, либо класс принтеров, а для определения состояния адресатов применяется команда . В команде reject может быть задана следующая опция:
-r[причина] Связывает причину с запрещением вывода. Эта причина относится ко всем принтерам, перечисленным до следующей опции -r. Причина сообщается командой lp, когда пользователь направляет запрос адресату, а также по команде . Если опция -r не задана или задана без указания причины, то действует подразумеваемая причина.
ФАЙЛЫ
/usr/spool/lp/*
СМ. ТАКЖЕ
, lpshed(1M).
, , , в Справочнике пользователя.
НАЗВАНИЕ
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 - 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ний:
Иcкoмый дocтyп к фaйлy зaпpeщeн, ecли выпoлняeтcя xoтя бы oднo из cлeдyющиx ycлoвий:
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: 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 [см. также ].
НАЗВАНИЕ
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 - 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вий:
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 - формат файла с информацией о процессах
СИНТАКСИС
#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 - получение статистики использования команд
СИНТАКСИС
/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) [см. ]. Обычно сортировка производится по общему количеству килобайтоминут.
Следующие опции могут указываться только совместно с опцией -a:
Если опции -p и -o указаны вместе, то выводится статистика расходования как дневного, так и ночного времени. При этом все колонки будут содержать суммарные величины, кроме колонок количества запусков команды, времени ЦП и астрономического времени выполнения, которые будут разделены на дневные и ночные.
Следующая последовательность команд типична для ежедневного учета:
acctcms файл ... > нынешний_итог cp общий_итог прежний_итог acctcms -s нынешний_итог прежний_итог > общий_итог acctcms -a -s нынешний_итог
СМ. ТАКЖЕ
.
в Справочнике пользователя.
в Справочнике программиста.
ОГРАНИЧЕНИЯ
При использовании опции -t все файлы с информацией о командах должны иметь сводный формат, то есть эта опция не решает проблемы совместного использования новых и старых файлов.
НАЗВАНИЕ
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*.
Допустимые опции:
Идентификатором пользователя. Входным именем, которое затем преобразуется в идентификатор пользователя. Знаком #, означающим все процессы, выполнявшиеся с привилегией суперпользователя. Знаком ?, означающим все процессы с неизвестным идентификатором пользователя.
Совместное использование опций вызывает эффект логического И.
ФАЙЛЫ
/etc/passwd /usr/adm/pacct /etc/group
СМ. ТАКЖЕ
, .
, , в Справочнике программиста.
, , , , , , , в Справочнике администратора.
СЮРПРИЗЫ
Команда acctcom дает информацию только о завершившихся процессах, для активных процессов используйте .
Если время превосходит текущее время и не использована опция -d, считается, что речь идет о вчерашнем дне.
Опции -s, -e, -S, -E работают неверно, выявляя не все подходящие процессы.
НАЗВАНИЕ
acctcon1, acctcon2 - учет сеансов работы в системе
СИНТАКСИС
/usr/lib/acct/acctcon1 [-p] [-t] [-l файл] [-o файл] /usr/lib/acct/acctcon2
ОПИСАНИЕ
Утилита acctcon1 читает со стандартного ввода последовательность записей о начале/конце сеансов работы пользователей и помещает на стандартный вывод по одной записи на каждый сеанс. Как правило, в качестве стандартного ввода используется файл /etc/wtmp. Результаты работы утилиты acctcon1 выдаются в текстовом виде; в них указываются: терминальная линия, идентификатор пользователя, входное имя, дневное время работы (сек.), ночное время работы (сек.), а также время начала сеанса в числовом виде (как число секунд, прошедшее с 00:00:00 1 января 1970 года) и в виде даты и времени.
Опциям утилиты acctcon1 приписан следующий смысл:
В указанный файл помещается сводная информация об использовании терминальных линий: имя линии, время использования (мин.), процентное отношение к общему времени работы системы, количество сеансов, количество входов и количество выходов. Этот файл помогает проследить использование терминальных линий, обнаружить неисправные линии, а также ошибки аппаратного и программного обеспечения. Записи о выходе генерируются при освобождении линии, при завершении и при завершении входного shell'а, поэтому количество выходов обычно в три четыре раза больше, чем количество сеансов. См. также и .
В указанный файл помещаются итоговые сведения за период, определяемый исходными записями. Итоговые сведения содержат время начала/конца периода сбора статистики, количество перезагрузок системы, изменений даты, изменений уровня выполнения и т.д.
<
НАЗВАНИЕ
acctmerg - слияние статистической информации
СИНТАКСИС
/usr/lib/acctmerg [-a] [-i] [-p] [-t] [-u] [-v] [файл ...]
ОПИСАНИЕ
Утилита acctmerg читает исходные данные со стандартного ввода и из указанных в командной строке файлов (их должно быть не более 9). Исходные записи должны иметь сводный формат tacct [см. ] или текстовый вариант этого формата. Утилита acctmerg производит слияние вводимой информации путем об единения записей с одинаковыми значениями ключей, каковыми обычно являются идентификаторы и входные имена пользователей, и помещает результаты на стандартный вывод. Предполагается, что исходные данные отсортированы по значениям ключей.
Допустимые опции:
Для внесения изменений в файл f1, хранящий записи в формате tacct, рекомендуется сначала преобразовать его к текстовому виду командой
acctmerg -v < f1 > f2
после чего отредактировать файл f2 и вновь сгенерировать результаты в сводном формате:
acctmerg -i < f2 > f1
СМ. ТАКЖЕ
, , , , , , , .
, в Справочнике программиста.
НАЗВАНИЕ
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?. Опции таковы:
(общее время работы центрального процессора/истекшее время)
Задание нескольких опций имеет эффект логического "И".
ФАЙЛЫ
/etc/passwd /usr/adm/pacct /etc/group
СМ. ТАКЖЕ
, , , acct(S), , utmp(3)
ПРИМЕЧАНИЯ
acctcom выдает информацию только по завершившимся процессам; для активных процессов используйте .
НАЗВАНИЕ
accton - включает учет процессов
СИНТАКСИС
accton [file]
ОПИСАНИЕ
accton включает и выключает учет процессов. Если аргумент file отсутствует, то учет отключается. Если же file задан, то ядро добавляет в file записи учета процессов. (См. и ассt(3)).
ФАЙЛЫ
/etc/passwd Используется для преобразования регистационного имени в пользовательский идентификатор /usr/adm/pacct Текущий файл учета процессов /usr/adm/sulogin Файл регистрации подключений к системе привилегированного пользователя /etc/wtmp Файл регистрации входа и выхода из системы
СМ. ТАКЖЕ
acctcom(8), , , , utmp(3)
НАЗВАНИЕ
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: 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'ом.
НАЗВАНИЕ
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 приписан следующий смысл:
<
НАЗВАНИЕ
addkern - добавление драйвера устройства или модуля потока к ядру ОС UNIX
СИНТАКСИС
/etc/addkern [-a размер] [-a выполняемый_файл] [-x адрес] [-f адрес] [-l]
ОПИСАНИЕ
Утилита addkern обеспечивает добавление драйверов устройств или модулей потоков к ядру ОС UNIX. Применение всех опций, за исключением -l, доступно только суперпользователю. Из всех возможных опций должна быть указана ровно одна.
Опциям утилиты addkern приписан следующий смысл:
Выделение пространства в виртуальной и физической памяти ядра. В случае успеха возвращается виртуальный адрес в пространстве ядра, который выдается на стандартный вывод для последующих вызовов утилит и addkern.
Выделение пространства в виртуальной и физической памяти ядра. Размер вычисляется по секциям выполняемого_файла.
Активация драйвера устройства или модуля потока. Адрес является виртуальным адресом в пространстве ядра, заранее полученным с помощью вызова addkern -a. UNIX-ядро предполагает, что по данному адресу находится структура типа addkern. Эта структура определяется во включаемом файле <sys/conf.h> и будет сгенерирована программой addconf [см. ].
Деактивация драйвера устройства или модуля потока. Адрес является виртуальным адресом в пространстве ядра, заранее полученным и активированным с помощью вызовов addkern. UNIX-ядро предполагает, что по данному адресу находится структура типа addkern. После полной деактивации область памяти будет освобождена и возвращена в пул физической и виртуальной памяти ядра.
На стандартный вывод выдается список выделенных и активных в ядре структур типа addkern.
ФАЙЛЫ
/usr/include/sys/conf.h
СМ. ТАКЖЕ
, , .
ДИАГНОСТИКА
Диагностические сообщения утилиты addkern не нуждаются в пояснениях.
ПРЕДОСТЕРЕЖЕНИЯ
Предоставьте вызовы addkern -a и addkern -x утилите - у нее больше информации.
Вызывайте addkern с опциями -a, -x, -f только в однопользовательском режиме.
Использование addkern может вызвать аварийный отказ Вашей системы.
Использовать addkern рекомендуется только лучшим специалистам (гуру) по операционной системе UNIX.
НАЗВАНИЕ
adfmt - Форматирует жесткие диски типа SCSI.
СИНТАКСИС
/etc/adfmt device_name
ОПИСАНИЕ
Команда adfmt запускает команду format для SCSI-диска device_name. device-name должно быть символьным устройством, представляющим весь SCSI-диск, например, /dev/rhd00.
ПРИМЕЧАНИЯ
аппаратных и программных средств и не может
включаться в вашу поставку.
SCSI-диски со встроенными контроллерами форматируются в процессе производственного тестирования. Запуск команды admft для этих дисков не обязателен.
ФАЙЛЫ
/dev/rhd?0
НАЗВАНИЕ
admin - создание и административные функции для SCCS-файлов
СИНТАКСИС
admin [-n] [-i[файл]] [-rверсия] [-t[файл]] [-fфлаг[значение]] [-dфлаг[значение]] [-aпользователь] [-eпользователь] [-m[список_номеров_запросов_на_модификацию]] [-y[комментарий]] [-h] [-z] файл ...
ОПИСАНИЕ
Команда admin используется для создания новых SCCS-файлов и изменения параметров существующих. Аргументы admin, которые могут задаваться в любом порядке, состоят из опций и имен файлов (отметим, что простые имена SCCS-файлов должны начинаться с s.). Если поименованный файл не существует, он создается, и его характеристики устанавливаются в соответствии с указанными аргументами. Характеристикам, для которых не заданы соответствующие аргументы, присваиваются значения по умолчанию. Если поименованный файл существует, его характеристики, соответствующие указанным аргументам, изменяются, а остальные остаются без изменений.
Если задано имя каталога, admin обрабатывает все файлы в этом каталоге, начинающиеся с s.; файлы, к которым нет доступа на чтение, игнорируются без дополнительных сообщений. Если задано имя -, происходит чтение со стандартного ввода, каждая строка при этом трактуется как имя SCCS-файла, подлежащего обработке. Файлы, не начинающиеся с s., и файлы, к которым нет доступа на чтение, также игнорируются без дополнительных сообщений.
Каждая опция об ясняется ниже для одного обрабатываемого файла; при нескольких файлах она применяется к каждому из них.
Текст для нового SCCS-файла взять из указанного файла. Этот текст составляет начальную версию (по поводу нумерации версий см. опцию -r). Если используется опция -i, а файл не задан, текст берется со стандартного ввода, до достижения конца файла. Если опция -i отсутствует, SCCS-файл создается пустым. Командой admin с опцией -i можно создать только один файл, без опции -i можно создать несколько (пустых) файлов. Опция -i подразумевает опцию -n.
Номер начальной версии файла. Эта опция используется совместно с опцией -i. Если -r отсутствует, подразумевается версия 1. Уровень начальной версии всегда 1, то есть по умолчанию начальная версия получает имя 1.1.
Описание SCCS-файла взять из файла. Если опция -t используется при создании SCCS-файла (опции -n и/или -i) файл с описанием обязателен. Для существующего файла: (1) опция -t без имени файла приводит к удалению описания SCCS-файла, (2) опция -t с именем файла приводит к замене существующего описания SCCS-файла на новое, содержащееся в файле.
Эта опция определяет флаг, и, возможно, значение флага, который помещается в 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, хотя бы с пустым значением.
Приводит к удалению указанного флага из SCCS-файла. Опция -d может быть указана только для существующих SCCS-файлов. В одной команде admin можно указать несколько опций -d. Допустимые флаги см. в описании опции -f.
Список "закрытых" версий, которые должны быть "открыты". Синтаксис списка см. в описании флага l опции -f.
Имя пользователя или числовой идентификатор группы добавляется к списку пользователей, которые имеют право редактировать версии в SCCS-файле. Указание идентификатора группы эквивалентно указанию имен всех пользователей, принадлежащих группе. В одной команде admin можно указать несколько опций -a. Количество имен пользователей и идентификаторов групп в списке имеющих доступ не ограничено. Если этот список пуст, никто не может редактировать версии.
Имя пользователя или числовой идентификатор группы удаляется из списка пользователей, которые имеют право редактировать версии в SCCS-файле. Указание идентификатора группы эквивалентно указанию имен всех пользователей, принадлежащих группе. В одной команде admin можно указать несколько опций -e.
Список_номеров_запросов_на_модификацию включается в SCCS-файл в качестве причины создания начальной версии тем же способом, что и . Флаг v должен быть установлен. Номера запроса проверяются на корректность, если флаг v содержит значение (имя программы проверки). Если флаг v не указан или программа проверки выявила некорректность, выдается диагностика.
Текст комментария вносится в SCCS-файл как комментарий к начальной версии, тем же способом, что и . Опущенная опция -y приводит к занесению в файл стандартного комментария:
date and time created гг/мм/дд чч:мм:сс by пользователь Опция -y может быть указана только совместно с опциями -i и/или -n (то есть при создании нового SCCS-файла). Если комментарий больше одного слова, он должен быть заключен в двойные кавычки.
Admin проверяет структуру SCCS-файла [см. sccsfile(5)] и сравнивает вновь вычисленную контрольную сумму (сумму кодов всех символов в SCCS-файле, кроме символов первой строки) с контрольной суммой, хранящейся в первой строке SCCS-файла. Выдается соответствующая диагностика. Эта опция запрещает запись в файл, аннулирует все остальные опции и имеет смысл только для существующих файлов.
Контрольная сумма SCCS-файла перевычисляется и записывается в первую строку (см. выше опцию -h). Использование этой опции для поврежденного файла может привести к тому, что повреждение пройдет незамеченным.
<
НАЗВАНИЕ
alarm - установка будильника для процесса
СИНТАКСИС
unsigned alarm (sec) unsigned sec;
ОПИСАНИЕ
Системный вызов alarm устанавливает будильник. Через определенное аргументом sec число секунд реального времени вызывающий процесс получит сигнал SIGALRM[см. ].
Запросы к alarm не запоминаются в стеке; последовательные вызовы просто переустанавливают будильник процесса.
Если sec=0, все предыдущие запросы к alarm отменяются.
СМ. ТАКЖЕ
, , sigpause(2), .
ДИАГНОСТИКА
Системный вызов alarm возвращает время, установленное предыдущим обращением к нему.
ИМЯ
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, 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 может сгенерировать только файлы сети, которые могут использоваться в точке старта. А остальную поддержку сети следует выполнять вручную с помощью редактора.
НАЗВАНИЕ
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 - генератор хэш-таблицы псевдонимов 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 - альтернативные дорожки для дефектных дорожек диска
ОПИСАНИЕ
Блок 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 на поверхность */
НАЗВАНИЕ
apropos, whatis - поиск в базе данных по ключевому слову.
СИНТАКСИС
apropos ключевое слово... whatis ключевое слово...
ОПИСАНИЕ
apropos ищет установленные в файлах базы данных краткие описания системных команд по ключевому слову и выводит результат на стандартный вывод. Whatis показывает описание только для полного имени команды.
СМ. ТАКЖЕ
man(1), makewhatis(1).
НАЗВАНИЕ
ar - обслуживание мобильных архивов и библиотек
СИНТАКСИС
ar [-][d][r][q][t][p][m][x][v][c][l][s] [позиционирующее_имя] а_файл [имя ...]
ОПИСАНИЕ
Команда ar предоставляет средства обслуживания группы файлов, об единенных в один архивный файл. Применяется главным образом для создания и изменения библиотечных файлов, используемых редактором связей. Может применяться и для других подобных целей. Магические цепочки и заголовки файлов состоят из печатаемых ASCII-символов, так что если в состав архива входят только печатаемые файлы, то и архив в целом окажется печатаемым.
При создании архива командой ar заголовки файлов строятся в формате, не зависящем от конкретной машины. Формат и структура мобильного архива подробно описаны в . Таблица имен архива (описанная там же) используется редактором связей [ld(1)] для сокращения числа проходов по библиотекам об ектных файлов. Команда ar создает и поддерживает таблицу имен только при наличии в архиве хотя бы одного об ектного файла. Таблица имен в случае ее создания помещается в начале архива в качестве файла с особым именем. Ни ссылка на этот файл, ни доступ к нему для пользователя невозможны. При создании или изменении архива командой таблица имен всякий раз перестраивается. Таблицу имен можно перестроить принудительно, воспользовавшись описанной ниже опцией s.
В отличие от командных опций командный ключ составляет обязательную часть командной строки ar. Ключ (которому может предшествовать символ -) представляет собой один из символов набора drqtpmx. Аргументами же ключа могут служить один или несколько символов из набора vuaibcls. Позиционирующее_имя - это имя элемента архива, которое используется в качестве указателя конкретного места архива, куда должны помещаться другие файлы. А_файл - это имя архивного файла. Под именами подразумеваются имена файлов, входящих в архив. Символам, образующим ключ, приписан следующий смысл:
Удалить указанные файлы из архива.
Заменить указанные файлы в архиве. Если в ключе наряду с r присутствует необязательный символ u, то замена будет произведена только для тех из указанных файлов, у которых дата последней модификации превышает соответствующую дату у одноименных файлов, хранящихся в архиве. Если ключ содержит признак позиционирования, т.е. один из необязательных символов abi, то в команде должен присутствовать аргумент позиционирующее_имя и в этом случае все новые файлы будут помещаться перед (b или i) или вслед за (a) файлом с таким именем. При отсутствии признака позиционирования новые файлы будут помещаться в конец архива.
Быстро поместить указанные файлы в конец архива. Использование символов позиционирования недопустимо. Проверка, имеются ли уже в архиве указанные файлы, командой не осуществляется. Данная возможность полезна только для того, чтобы избежать квадратичного роста временных затрат при наращивании больших архивов. Отказ от проверок может, напротив, повести к росту размеров архивного файла.
Вывести оглавление архива. Если имена не указаны, перечисляются все файлы архива; если имена указаны, выводятся только они.
Напечатать указанные файлы из архива.
Переместить указанные файлы в конец архива. Если ключ содержит признак позиционирования, то в команде должен присутствовать аргумент позиционирующее_имя, и тогда место, куда перемещаются файлы, будет определяться так же, как и для опции r.
Извлечь указанные файлы из архива и поместить в текущий каталог. Если имена не указаны, извлекаются все содержащиеся в архиве файлы. Операция не изменяет архивный файл.
<
НАЗВАНИЕ
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 отражает точный размер без учета вставок.
НАЗВАНИЕ
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 - стандартный ассемблер
СИНТАКСИС
as [-o об ектный_файл] [-n] [-m] [-R] [-dl] [-V] [-Y [md],каталог] файл
ОПИСАНИЕ
Команда as ассемблирует указанный файл. В любом порядке могут быть заданы следующие опции:
Поместить результат в об'ектный_файл. По умолчанию имя выходного файла формируется из имени исходного файла удалением расширения .s, если такое существует, и добавлением расширения .o.
Выключить оптимизирующее преобразование длинных адресов в короткие. По умолчанию оптимизация включена.
Перед ассемблированием запустить макропроцессор m4.
Удалить исходный файл после ассемблирования.
Не помещать в об ектный файл информацию о номерах строк.
Выдать номер версии ассемблера в стандартный протокол.
Искать препроцессор m4 (m) и/или файл предопределенных макросов (d) в указанном каталоге, а не в обычном месте.
ФАЙЛЫ
TMPDIR/* Временные файлы.
Обычно каталог TMPDIR - это /usr/tmp, однако данное соглашение можно изменить, присвоив переменной окружения TMPDIR другое значение [см. tempnam( ) в ].
СМ. ТАКЖЕ
, , , , .
, a.out(4) в Справочнике программиста.
ПРЕДОСТЕРЕЖЕНИЯ
В случае задания опции -m (вызов макропроцессора m4) ключевые слова макропрепроцессора нельзя использовать в исходном файле в качестве имен переменных, функций, меток, так как m4 не сможет определить, где имена ассемблера, а где - имена макросов.
СЮРПРИЗЫ
Директива ассемблера .align может не работать в секции команд (.text), если включена оптимизация.
ОГРАНИЧЕНИЯ
Арифметическое выражение может содержать не более одного имени, определяемого дальше.
ПРИМЕЧАНИЯ
По возможности ассемблер следует вызывать посредством какой-либо системной интерфейсной программы компиляции [такой, например, как ].
НАЗВАНИЕ
asa - интерпретация символов управления кареткой
СИНТАКСИС
asa [файл ...]
ОПИСАНИЕ
Команда asa интерпретирует выводимые данные Фортран-программ, в которых содержатся символы управления кареткой. Команда относится либо к файлам, имена которых заданы в качестве аргументов, либо к стандартному вводу, если аргументов нет. Предполагается, что первый символ каждой строки - управляющий; значения символов следующие:
пробел Продвижение на одну строку перед выполнением печати. 0 Продвижение на две строки перед выполнением печати. 1 Продвижение в начало новой страницы перед выполнением печати. + Повторная печать на той же строке.
Если строка начинается символом, отличающимся от перечисленных, то она обрабатывается так, как если бы начиналась пробелом. Первый символ строки не печатается. Печать таких строк сопровождается выводом соответствующего диагностического сообщения на стандартный протокол. Печать каждого файла начинается с новой страницы.
Чтобы корректно печатались выходные файлы Фортран-программ, в которых присутствуют символы управления кареткой, команду asa можно использовать как фильтр:
программа | asa | lp
Выходная информация, соответствующим образом отформатированная и разбитая на страницы, направляется на принтер. Результаты Фортран-программы, накопленные в файле, можно визуализировать командой
asa файл
СМ. ТАКЖЕ
, , , , .
НАЗВАНИЕ
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
НАЗВАНИЕ
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 - проверка утверждений в программе
СИНТАКСИС
#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, 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 - 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ги:
Acceмблиpyeмыe ceгмeнты вывoдятcя в aлфaвитнoм пopядкe, a нe в пopядкe пepeчиcлeния иx в иcxoднoм фaйлe.
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я.
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ния.
П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н.
Пoдaвляeт гeнepaцию тaблицы имeн в лиcтингe пpoгpaммы. Этoт флaг игнopиpyeтcя, ecли нe yкaзaн флaг -l.
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я.
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ичный.
Г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ми.
П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 - планирование выполнения команд в определенное время
СИНТАКСИС
at время [дата] [+задержка] at -r идентификатор_задания ... at -l [идентификатор_задания ...]
ОПИСАНИЕ
Команда at в первом из приведенных вариантов читает со стандартного ввода задание, выполнение которого планируется на указанное время. Смысл опций двух других вариантов команды at таков:
-r
-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 (следующий).
НАЗВАНИЕ
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й
НАЗВАНИЕ
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 не задана, то по умолчанию устанавливается одна минута.
НАЗВАНИЕ
awk - сопоставление с шаблонами и преобразование текста
СИНТАКСИС
awk [-Fсимвол] [[-f] программа] [аргумент ...] [файл ...]
ОПИСАНИЕ
Команда awk сопоставляет строки исходных файлов с шаблонами, определенными в программе. Шаблоны можно задать либо непосредственно в командной строке, либо поместить в файл с именем программа и воспользоваться опцией -f. Если шаблоны указаны в командной строке, их следует заключить в одинарные кавычки ('), чтобы избежать интерпретации shell'ом.
Команде awk могут быть переданы аргументы в виде x=... y=... и т.д. (см. ПРИМЕРЫ).
Файлы читаются в том порядке, как они заданы. Если не указано ни одного файла или задано имя -, используется стандартный ввод. Ввод для awk делится на записи, разделяемые специальным символом. По умолчанию это перевод строки; в таком случае awk обрабатывает ввод построчно. Разделитель записей можно изменить, переопределив переменную RS. Каждая запись делится на поля, ограниченные разделителями полей (по умолчанию - пробелами). Этот разделитель можно изменить, переопределив переменную FS или указав флаг -Fсимвол. Поля исходных строк доступны по именам $1, $2,...; $0 - вся входная строка.
Для каждого шаблона из программы может быть задано действие, которое будет произведено со всякой строкой, успешно сопоставленной с шаблоном. Оператор шаблон-действие имеет вид:
шаблон { действие }
Каждая исходная строка сопоставляется с каждым из шаблонов; в случае успеха выполняются указанные действия. После сопоставления со всеми шаблонами вводится следующая строка и процесс сопоставления повторяется. Может быть опущен либо шаблон, либо действие, но не оба вместе. Если для данного шаблона не указаны действия, то строка просто копируется на стандартный вывод. Если для действия не определен шаблон, то оно будет выполняться для каждой входной строки. Строки, которые не удалось сопоставить ни одному шаблону, игнорируются.
Действие есть последовательность операторов. Так как шаблоны и действия могут быть опущены, то, чтобы различать их в программе, последние надо брать в фигурные скобки. Оператор есть одна из конструкций:
НАЗВАНИЕ
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, а во внешнюю переменную
НАЗВАНИЕ
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 игнорируется. Символ, обозначающий тип преобразования.
НАЗВАНИЕ
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, 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: 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. Кроме того, в стандартный протокол будет выдано сообщение о выходе за границы области определения.
Изложенная процедура обработки ошибок может быть изменена посредством функции .