Man pages на русском

         

Man pages на русском

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 должна быть удалена (суперпользователем), чтобы в момент следующего вызова команды был построен правильный список.

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

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



CRYPT(3C)


НАЗВАНИЕ

crypt, setkey, encrypt - шифровка хешированием

СИНТАКСИС

char *crypt (key, salt) char *key, *salt;

void setkey (key) char *key;

void encrypt (block, ignored) char *block; int ignored;

ОПИСАНИЕ

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

Аргумент key представляет собой пароль, введенный пользователем. Salt - это двухсимвольная цепочка, выбираемая из множества [a-zA-Z0-9./]. Она настраивает алгоритм хеширования на один из 4096 вариантов, после чего пароль используется как ключ для циклической шифровки некоторой текстовой константы. Возвращаемое значение указывает на зашифрованный пароль. Его первые два символа равны salt.

Функции setkey и encrypt обеспечивают доступ (на довольно примитивном уровне) к алгоритму хеширования. Аргумент функции setkey - это символьный массив длиной 64, содержащий только символы с числовым значением 0 и 1 и изображающий цепочку бит. В каждой из восьми групп по 8 символов наименее значащий "бит" игнорируется. Полученный 56-битный ключ передается компьютеру и используется в алгоритме хеширования для шифровки цепочки block в функции encrypt.

Аргумент функции encrypt - символьный массив длиной 64, содержащий только символы с числовым значением 0 и 1. Аргумент преобразуется на месте в массив того же вида, изображающий биты аргумента после применения алгоритма хеширования с ключом, установленным в функции setkey. Аргумент ignored не используется, но должен быть задан.

СМ. ТАКЖЕ

, .

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

ОГРАНИЧЕНИЯ

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



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.









DAEMON.MN(7)


ИМЯ

daemon.mn - Демон посылки сообщений сети Micnet.

СИНТАКСИС

/usr/lib/mail/daemon.mn[-ex]

ОПИСАНИЕ

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

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

При вызове с -х включением демон записывает каждую передачу в LOG файл. Вход передачи показывает направление передачи (tx для посылки, rx для получения), число, переданное в байтах, время счета для передачи (в минутах и секундах) и время для передачи (в часах, минутах и секундах). Каждый вход имеет вид:

direction byte_count elasped_time time_of_ day

Демон также записывает дату и время каждый час. Время и дата имеют такой же формат, как описано в команде date.

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

Демон, как правило, вызывается опцией start команды netutil и останавливается опцией stop.

При нормальном ходе вычисления демон использует несколько файлов из каталога /usr/spool/micnet/remote. Эти файлы обеспечивают хранение входных данных, команд, запускаемых командой remote(1), и списка процессов под управлением демона.

ФАЙЛЫ

/usr/lib/mail/daemon.mn /usr/spool/micnet/remote/*/LOG /usr/spool/micnet/remote/*/mn /usr/spool/micnet/remote/local/mn* /usr/spool/micnet/remote/loc /usr/spool/micnet/remote/pids

СМ. ТАКЖЕ

netutil(8)



DATE(1)


НАЗВАНИЕ

date - выдача и установка даты и времени

СИНТАКСИС

date [ммддччмм[гг]] [+формат]

ОПИСАНИЕ

Если аргументы команды date не указаны, или аргумент начинается со знака +, выводятся текущие дата и время; в противном случае выполняется установка даты и времени. Первые мм - это номер месяца; дд - номер дня в месяце; чч - номер часа (по 24-часовой шкале); вторые мм - номер минуты; гг - две последние цифры номера года, их указывать не обязательно. Например, команда

date 10080045

устанавливает дату на 8 октября, 0 часов 45 минут. Если год не указан, подразумевается текущий год. Система UNIX использует всемирное время. Команда date принимает во внимание часовой пояс и поправку на летнее время (в стандартах США) и выполняет соответствующие преобразования. Менять дату может только суперпользователь.

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

Описатели полей:

n вставить символ перевода строки t вставить символ табуляции m месяц года - от 01 до 12 d день месяца - от 01 до 31 y 2 цифры года - от 00 до 99 D дата в виде мм/дд/гг H час - от 00 до 23 M минуты - от 00 до 59 S секунды - от 00 до 59 T время в виде чч:мм:сс j день года - от 001 до 366 w день недели - воскресенье = 0 a сокращение дня недели - от Sun до Sat h сокращение названия месяца - от Jan до Dec r время по 12-часовой шкале

ПРИМЕР

Команда

date '+DATE: %m/%d/%y%nTIME: %H:%M:%S'

выдаст информацию следующего вида:

DATE: 08/18/88 TIME: 14:45:05

ФАЙЛЫ

/dev/kmem

СМ. ТАКЖЕ

ctime(3C), timezone(4) в Справочнике программиста.

sysadm(1M) в Справочнике администратора.

ДИАГНОСТИКА

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

Bad conwersion Устанавливаемая дата синтаксически неверна.

Bad format character Недопустимый описатель поля.

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

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



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


ИМЯ

dbminit, fetch, store, delete, firstkey, nextkey - yпpaвляeт бaзoй дaнныx

СИНТАКСИС

typedef struct {char *dptr;int dsize;} datum;

int dbminit (file) char *file;

datum fetch (key) datum key;

store (key, content) datum key, content;

delete (key) datum key;

datum firstkey ()

datum nextkey (key) datum key;

ОПИСАНИЕ

Эти фyнкции yпpaвляют paбoтoй бaзы дaнныx, в кoтopoй дocтyп к кaждoмy элeмeнтy бaзы ocyщecтвляeтcя пo ключy. Фyнкции мoгyт oбcлyживaть oчeнь бoльшиe бaзы дaнныx (дo миллиapдa блoкoв). Дocтyп пo ключy мoжeт быть кaк пpямым, тaк и пocлeдoвaтeльным. Пpoгpaммы, иcпoльзyющиe эти фyнкции, дoлжны кoмпoнoвaтьcя c флaгoм -ldbm.

Пoля key и content oпиcывaютcя c пoмoщью имeни типa datum, зaдaющeгo cтpoкy из dsize бaйтoв, нa кoтopyю yкaзывaeт dptr. Дoпycтимы пpoизвoльныe дaнныe в двoичнoй cиcтeмe cчиcлeния и cимвoльныe cтpoки. Бaзa дaнныx paзмeщaeтcя в двyx фaйлax. Пepвый фaйл этo кaтaлoг бaзы, coдepжaщий кapтy pacпpeдeлeния пaмяти. Bтopoй фaйл coдepжит coбcтвeннo дaнныe. Имя пepвoгo фaйлa имeeт cyффикc .dir, имя втopoгo - cyффикc .pag.

Для пoлyчeния дocтyпa к бaзe ee нyжнo oткpыть вызoвoм dbminit. B мoмeнт oткpытия фaйлы file.dir и file.pag (file - apгyмeнт фyнкции dbminit) дoлжны cyщecтвoвaть. Пycтaя бaзa coздaeтcя пyтeм coздaния этиx фaйлoв c нyлeвoй длинoй.

Пocлe oткpытия бaзы дaнныe из нee выбиpaютcя c пoмoщью фyнкции fetch и зaнocятcя в нee c пoмoщью фyнкции store. Bыбopкa и зaнeceниe пpoизвoдятcя c пoмoщью ключa - apгyмeнтa key. Kлюч и cвязaнныe c ним дaнныe yничтoжaютcя c пoмoщью фyнкции delete. Пocлeдoвaтeльный пpocмoтp вcex ключeй в бaзe мoжeт быть cдeлaн c пoмoщью фyнкций firstkey и nextkey. Firstkey вoзвpaщaeт пepвый ключ в бaзe, nextkey вoзвpaщaeт ключ, кoтopый cлeдyeт зa ключoм, являющимcя apгyмeнтoм фyнкции. Hижecлeдyющий цикл пoзвoляeт пpocмoтpeть вcю бaзy:

for(key=firstkey();key.dptr!=NULL;key=nextkey(key))

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

Фyнкции, вoзвpaщaющиe цeлыe знaчeния, в cлyчae oшибки вoзвpaщaют oтpицaтeльнoe чиcлo. B cлyчae ycпeшнoгo зaвepшeния вoзвpaщaeтcя 0. Фyнкции, вoзвpaщaющиe знaчeниe типa datum, в cлyчae oшибки ycтaнaвливaют пoлe dptr в NULL.

ЗAМEЧAНИЯ


Фaйл `.pag' мoжeт coдepжaть пycтыe oблacти, тaк чтo eгo oбъeм мoжeт пpимepнo в 4 paзa пpeвышaть oбъeм xpaнимыx в бaзe дaнныx. Пpeжниe вepcии XENIX пpи oбpaщeнии к пycтым oблacтям фaйлa мoгли зaнимaть пoд ниx peaльныe блoки диcкoвoгo пpocтpaнcтвa. Taкиe фaйлы нe мoгyт быть cкoпиpoвaны oбычными cpeдcтвaми (cp, cat, tp, tar, ar) бeз пpeдвapитeльнoгo зaпoлнeния пycтыx oблacтeй.

Укaзaтeль dptr в cтpyктypax типa datum, вoзвpaщaeмыx нeкoтopыми фyнкциями, yкaзывaeт cтaтичecкyю oблacть пaмяти, кoтopaя пepeзaпиcывaeтcя oчepeдным вызoвoм.

Cyммapнaя длинa пapы `ключ/дaнныe' нe дoлжнa пpeвышaть paзмepa блoкa (512 бaйтa). Бoлee тoгo, вce тaкиe пapы, имeющиe пpи xeшиpoвaнии oднo знaчeниe, дoлжны paзмeщaтьcя в oднoм блoкe. Ecли этo нe тaк, store вoзвpaщaeт oшибкy.

Delete нe измeняeт oбъeмa фaйлa, нo дeлaeт yдaлeнныe зaпиcи дocтyпными для нoвoгo иcпoльзoвaния.

Пopядoк ключeй, зaдaвaeмый фyнкциями firstkey и nextkey, oпpeдeляeтcя xeшиpoвaниeм.

Эти пpoгpaммы нepeeнтepaбeльны, пoэтoмy иx нeльзя иcпoльзoвaть для paбoты c нecкoлькими бaзaми oднoвpeмeннo.



Фaйл `.pag' мoжeт coдepжaть пycтыe oблacти, тaк чтo eгo oбъeм мoжeт пpимepнo в 4 paзa пpeвышaть oбъeм xpaнимыx в бaзe дaнныx. Пpeжниe вepcии XENIX пpи oбpaщeнии к пycтым oблacтям фaйлa мoгли зaнимaть пoд ниx peaльныe блoки диcкoвoгo пpocтpaнcтвa. Taкиe фaйлы нe мoгyт быть cкoпиpoвaны oбычными cpeдcтвaми (cp, cat, tp, tar, ar) бeз пpeдвapитeльнoгo зaпoлнeния пycтыx oблacтeй.

Укaзaтeль dptr в cтpyктypax типa datum, вoзвpaщaeмыx нeкoтopыми фyнкциями, yкaзывaeт cтaтичecкyю oблacть пaмяти, кoтopaя пepeзaпиcывaeтcя oчepeдным вызoвoм.

Cyммapнaя длинa пapы `ключ/дaнныe' нe дoлжнa пpeвышaть paзмepa блoкa (512 бaйтa). Бoлee тoгo, вce тaкиe пapы, имeющиe пpи xeшиpoвaнии oднo знaчeниe, дoлжны paзмeщaтьcя в oднoм блoкe. Ecли этo нe тaк, store вoзвpaщaeт oшибкy.

Delete нe измeняeт oбъeмa фaйлa, нo дeлaeт yдaлeнныe зaпиcи дocтyпными для нoвoгo иcпoльзoвaния.

Пopядoк ключeй, зaдaвaeмый фyнкциями firstkey и nextkey, oпpeдeляeтcя xeшиpoвaниeм.

Эти пpoгpaммы нepeeнтepaбeльны, пoэтoмy иx нeльзя иcпoльзoвaть для paбoты c нecкoлькими бaзaми oднoвpeмeннo.


Dbminit, fetch, store, delete, firstkey, nextkey


НАЗВАНИЕ

dbminit, fetch, store, delete, firstkey, nextkey - Подпрограммы БД

СИНТАКСИС

typedef struct { char *dptr; int dsize; } datum;

dbminit(file) char *file;

datum fetch(key) datum key;

store(key,content) datum key,content;

delete(key) datum key;

datum firstkey()

datum nextkey(key) datum key;

dbmclose()

ОПИСАНИЕ

Все указанные функции работают в базе данных с парами значений "ключ-содержимое". Они способны манипулировать с очень большими (в миллиард блоков) базами данных и адресоваться к ключевым данным за одно или два обращения к файловой системе. Доступ к функциям открывается через опцию загрузчика -ldbm. "Ключи" (keys) и "содержимое" (contents) описываются типом datum. Этому типу соответствует строка размером dsize, на которую указывает указатель dptr. Допустимы как строки в формате ASCII, так и произвольные двоичные данные. База данных располагается в двух файлах. Один файл представляет собой каталог с битовым массивом и расширением .dir. Вся остальная информация содержится во втором файле с расширением .pag. Для того, чтобы база данных стала доступной, она должна быть открыта функцией dbminit. К моменту вызова этой функции файлы с расширениями .dir и .pag должны существовать. (Пустая БД создается с пустыми файлами.)

После открытия к данным, хранящимся под ключом, открывается доступ по fetch; запоминаются под ключом они с помощью store. Ключ (и связанное с ним содержимое) удаляется подпрограммой delete. Разрешен простой перебор всех ключей, хранящихся в базе, в практически произвольном порядке с помощью функций firstkey и nextkey. Функция firstkey возвращает первый ключ в БД. Для любого ключа в БД функция nextkey возвращает следующее по порядку значение ключа. Программа перебора ключей в БД:

for (key=firstkey(); key.dptr!=NULL; key=nextkey(key))

Закрытие БД производится функцией dbmclose. БД должна закрываться перед открытием новой.

ДИАГНОСТИКА

Все функции, возвращающие значения типа int, сообщают об ошибках отрицательными значениями. Код возврата, равный 0, означает успех. Подпрограммы, возвращающие значения типа datum, сообщают об ошибках нулевым значением указателя dptr.

ЗАМЕЧАНИЯ



DC(1)


НАЗВАНИЕ

dc - настольный калькулятор

СИНТАКСИС

dc [файл]

ОПИСАНИЕ

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

Dc распознает следующие конструкции:

числоЗначение числа помещается в стек. Число - непрерывная цепочка цифр 0-9. В начале ее может стоять знак подчеркивания _ для ввода отрицательного числа. Число может содержать десятичную точку. + - / * % ^Верхние два числа стека складываются (+), вычитаются (-), умножаются (*), делятся (/), берется остаток (%) или выполняется возведение в степень. Оба операнда извлекаются из стека и результат помещается обратно в стек. Дробная часть показателя степени игнорируется. sxИзвлекается вершина стека и помещается в регистр с именем x, где x - любой символ. Если конструкция имеет вид Sx, то x рассматривается как стек, в который и помещается извлеченное значение. lx Значение, хранящееся в регистре x, помещается в стек. Регистр x не изменяется. Изначально все регистры инициализируются нулем. Если конструкция имеет вид Lx, то x рассматривается как стек, его вершина извлекается и помещается в главный стек. d Вершина стека удваивается. p Выводится вершина стека (без удаления из стека). P Вершина стека трактуется как цепочка символов, печатается и удаляется из стека. f Выводятся все элементы стека (без удаления). q Завершает работу программы. При выполнении цепочки символов уровень рекурсии уменьшается на два. Q Завершает работу программы. Вершина стека извлекается и уровень рекурсии уменьшается на полученное значение. x Вершина стека трактуется как цепочка символов, содержащая dc-команды, и выполняется. X Вершина стека заменяется количеством цифр в ее дробной части. [..] Цепочка символов, заключенная в скобки, помещается в вершину стека. x =x Два верхних элемента стека извлекаются и сравниваются. Если они удовлетворяют указанному условию, то содержимое регистра x рассматривается как команда dc и выполняется. v Верхний элемент стека заменяется квадратным корнем из него. Если он имел дробную часть, то она учитывается; в противном случае точность вычислений (см. команду k) игнорируется. ! Остаток строки интерпретируется как команда shell'а. c Очистка стека. i Вершина стека извлекается и используется как основание системы счисления при вводе. Команда I помещает используемое при вводе основание системы счисления в вершину стека. o Вершина стека извлекается и используется как основание системы счисления при выводе. Команда O помещает используемое при выводе основание системы счисления в вершину стека. k Извлекается вершина стека; она используется для задания точности вычислений: количества знаков в дробной части при выводе и при выполнении умножения, деления и возведения в степень. z В стек помещается количество его элементов. Z Число в вершине стека заменяется его длиной (без учета десятичной точки и знака минус). ? Со стандартного ввода вводится одна строка и исполняется. ;: Используются утилитой для операций с массивами.

ПРИМЕР

Вывести факториалы первых 10 натуральных чисел:

[la1+dsa*pla10>y]sy 0sa1 lyx

СМ. ТАКЖЕ

bc(1).

ДИАГНОСТИКА

x is unimplemented (где x - восьмеричное число). Операция, обозначен- ная символом с кодом x, не реализована. stack empty В стеке меньше элементов, чем требуется. Out space Слишком длинное число. Out of headers Слишком много чисел приходится хранить одновремен- но. Out of pushdown Стек переполнен. Nesting depth Слишком большой уровень вложенности при выполне- нии.



DCOPY(1M)


НАЗВАНИЕ

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

СИНТАКСИС

/etc/dcopy [-s размещ_блоков] [-a [срок]] [-d] [-v] [-f разм_файл_сист[:разм_списк_опис]] исходная_файловая_система целевая_файловая_система

ОПИСАНИЕ

Команда dcopy копирует исходную_файловую_систему в целевую_файловую_систему. Исходная_файловая_система представляется содержащим ее специальным файлом. Целевая_файловая_система - это специальный файл для вновь создаваемой файловой системы, куда будет помещен результат реорганизации. Чтобы процесс оптимизации был более эффективным, аргумент исходная_файловая_система должен быть бесструктурным устройством, а аргумент целевая_файловая_система - блочным. Обе файловые системы должны быть размонтированными (в случае корневой файловой системы копирование должно производиться на новый том).

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

-s размещ_блоков Информация об устройстве для оптимального размещения блоков файла. Спецификация размещ_блоков имеет тот же формат, что и спецификация опции -s команды .

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

-d Оставить порядок элементов каталогов неизменным (по умолчанию подкаталоги перемещаются в начало каталогов).

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

-f разм_файл_сист[:разм_списк_опис] Определяет размеры целевой файловой системы и ее списка описателей (в блоках). Если вся опция (или только спецификация :разм_списк_опис) не задана, то соответствующие значения заимствуются у исходной файловой системы.

Команда dcopy перехватывает сигналы прерывания и выхода (SIGINT и SIGQUIT), выдает сообщения о ходе своего выполнения. Для прекращения выполнения dcopy следует послать сигнал выхода и следом за ним еще один сигнал прерывания или выхода.

СМ. ТАКЖЕ

, .



DD(1)


НАЗВАНИЕ

dd - копирование файла с преобразованием

СИНТАКСИС

dd [опция=значение ...]

ОПИСАНИЕ

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

Допускаются следующие пары опция=значение:

if=файл Задается имя входного файла; по умолчанию используется стандартный ввод. of=файл Задается имя выходного файла; по умолчанию используется стандартный вывод. ibs=n Задается размер входного блока в байтах (по умолчанию 1024). obs=n Задается размер выходного блока в байтах (по умолчанию 1024). bs=n Устанавливаются размеры входного и выходного блока, подавляя действие опций ibs и obs. Если никаких преобразований не указано, то этот способ особенно эффективен, так как не придется копировать данные в памяти. cbs=n Задается размер буфера преобразований. skip=n Пропустить n входных блоков, прежде чем начинать копирование. seek=n Вставить в выходной файл n блоков, заполненых нулями, прежде чем начинать копирование. count=n Копировать только n входных блоков. conv=ascii Преобразовывать EBCDIC в ASCII. conv=ebcdic Преобразовывать ASCII в EBCDIC. conv=ibm Немного иное отображение ASCII в EBCDIC. conv=lcase Сделать все буквы малыми. conv=ucase Сделать все буквы большими. conv=swab Переставлять каждую пару байт. conv=noerror Не останавливать работу в случае ошибки. conv=sync Дополнять каждый входной блок до размера, указанного в опции ibs. conv=osync Дополнять каждый выходной блок до размера, указанного в опции obs.

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

В тех опциях, в которых задаются размеры, требуется указывать число байт. Число может кончаться на k, b, или w, что вызывает умножение на 1024, 512, и 2 соответствено; пара чисел может быть разделена символом x, что обозначает умножение.

Конструкция cbs=n используется, только если указано преобразование conv=ascii или conv=ebcdic. В первом случае n символов (преобразованных в код ASCII) помещаются в буфер преобразований, и, прежде чем послать их на вывод, в буфере отбрасываются концевые пробелы и добавляется перевод строки. Во втором случае строка читается в буфер преобразований, и, преобразованная в EBCDIC, дополняется пробелами до размера n.

После выполнения команда dd выводит количество полных и частично заполненых входных и выходных блоков.

ДИАГНОСТИКА

f+p records in(out) Количество полных и частично заполненых входных и выходных блоков. n truncated records Количество строк, усеченных из-за того, что их длина при ASCII/EBCDIC преобразовании превысила величину, указанную в опции cbs.



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


НАЗВАНИЕ

default - кaтaлoг фaйлoв, иcпoльзyeмыxи o yмoлчaнию

ОПИСАНИЕ

Фaйлы в кaтaлoгe /etc/default coдepжaт инфopмaцию, иcпoльзyeмyю cиcтeмными кoмaндaми, тaкими кaк , , в cлyчae, ecли oнa нe пoлнocтью oпpeдeлeнa пpи вызoвe кoмaнды.

Kaтaлoг мoжeт coдepжaть 0 или бoлee фaйлoв, кaждый из кoтopыx cooтвeтcтвyeт oднoй или нecкoльким кoмaндaм. Пpи выпoлнeнии кoмaнды c нeдocтaтoчнoй вxoднoй инфopмaциeй пpocмaтpивaeтcя cooтвeтcвyющий фaйл из этoгo кaтaлoгa. Kaждый фaйл coдepжит 0 или бoлee зaпиceй (вxoдoв) в фopмaтe:

keyword

или

keyword=value

гдe keyword oпpeдeляeт тип инфopмaции, a value - знaчeниe. Keyword и value зaдaютcя бyквaми, цифpaми и знaкaми пyнктyaции. Бoлee тoчныe cвeдeния пpивeдeны в oпиcaнияx cooтвeтcвyющиx кoмaнд.

Cтpoки oпиcывaeмыx фaйлoв, нaчинaющиecя c cимвoлa `#', cчитaютcя кoммeнтapиeм и пpи пpocмoтpe игнopиpyютcя.

ФАЙЛЫ

/etc/default/archive /etc/default/backup /etc/default/boot /etc/default/cron /etc/default/dumpdir /etc/default/filesys /etc/default/login /etc/default/lpd /etc/default/mapchan /etc/default/micnet /etc/default/mkuser /etc/default/msdos /etc/default/passwd /etc/default/restor /etc/default/tar

СМ. ТАКЖЕ

archive(7), , boot(HW), cron(7), , , filesys(7), login(5), , , micnet(5), mkuser(1), , , , su(C1), ,

ЗАМЕЧАНИЯ

Фaйлы из кaтaлoгa /etc/default иcпoльзyютcя нe вceми кoмaндaми. Cм. cooтвeтcвyющиe oпиcaния.



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


ИМЯ

defopen, defread - читaeт фaйлы yмoлчaний

СИНТАКСИС

int defopen (filename) char *filename;

char *defread (pattern) char *pattern;

ОПИСАНИЕ

Фyнкции defopen и defread пpeднaзнaчeны для пoлyчeния быcтpoгo дocтyпa к фaйлaм yмoлчaний. Oбычнo XENIX пocтaвляeтcя в двoичнoм видe; иcпoльзoвaниe фaйлoв yмoлчaний пoзвoляeт пpиcпocoбить cиcтeмy для кoнкpeтныx нyжд, нe имeя иcxoдныx тeкcтoв cиcтeмы.

defopen oткpывaeт фaйл yмoлчaний, зaдaнный имeнeм filename. defopen вoзвpaщaeт 0 пpи ycпeшнoм oткpытии фaйлa и кoд, кoтopый fopen зaнocит в errno, пpи нeyдaчнoм oткpытии.

defread читaeт пpeдвapитeльнo oткpытый фaйл oт eгo нaчaлa в пoиcкax cтpoки, нaчинaющeйcя c пoдcтpoки pattern. Ecли тaкaя cтpoкa нaйдeнa, defread вoзвpaщaeт yкaзaтeль нa пepвый cимвoл в cтpoкe пocлe этoй пoдcтpoки. Пpoчитaнныe зaвepшaющиe cимвoлы пepeвoдa cтpoки зaмeняютcя cимвoлaми NUL.

Пocлe тoгo, кaк вce интepecyющиe мecтa выбpaны из фaйлa yмoлчaний, пpoгpaммa мoжeт вызвaть defopen c имeнeм дpyгoгo фaйлa, в кoтopoм бyдeт пpoизвoдитьcя пoиcк, или c apгyмeнтoм NULL, вызывaющим зaкpытиe фaйлa yмoлчaний бeз oткpытия дpyгoгo фaйлa.

ФAЙЛЫ

Пo дeйcтвyющим в XENIX coглaшeниям yмoлчaния для пpoгpaммы xyz (ecли oни ecть) coдepжaтcя в фaйлe /etc/default/xyz.

ДИAГНOCТИКA

B cлyчae ycпeшнoгo зaвepшeния defopen вoзвpaщaeт знaчeниe 0. Пpи нeyдaчнoм oткpытии вoзвpaщaeтcя знaчeниe, кoтopoe зaнocит в errno.

defread вoзвpaщaeт NULL, ecли фaйл нe oткpыт, нe нaйдeн тpeбyeмый pattern или ecли в фaйлe вcтpeтилacь cтpoкa, длинa кoтopoй пpeвышвeт 128 cимвoлoв.

ЗAМEЧAНИЯ

Boзвpaщaeмoe знaчeниe yкaзывaeт cтaтичecкyю oблacть пaмяти и мoжeт быть пepeзaпиcaнo oчepeдным вызoвoм.



DELTA(1)


НАЗВАНИЕ

delta - внесение изменений (новой версии) в SCCS-файл

СИНТАКСИС

delta [-rс_идентификатор] [-s] [-n] [-gсписок] [-m[список_номеров_запросов_на_модификацию]] [-y[комментарий]] [-p] файл ...

ОПИСАНИЕ

Команда delta используется для внесения в SCCS-файл изменений, сделанных в извлеченном с помощью get так называемом g-файле.

Delta вносит изменения в каждый указанный SCCS-файл. Если указано имя каталога, delta обрабатывает все файлы в этом каталоге, начинающиеся с s.; файлы, к которым нет доступа на чтение, игнорируются без дополнительных сообщений. Если указано имя -, происходит чтение со стандартного ввода [см. ПРЕДОСТЕРЕЖЕНИЯ], каждая строка при этом трактуется как имя SCCS-файла, подлежащего обработке.

Delta может выдавать запросы на стандартный вывод, в зависимости от присутствующих в файле SCCS флагов [см. admin(1), а также опции -m и -y ниже].

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

-rс_идентификатор Указывает с_идентификатор версии, помещаемой в SCCS-файл. Эту опцию необходимо использовать только в случае, если одним и тем же человеком (или пользователями с одинаковым входным именем) было одновременно выполнено несколько команд get с опцией -e. Заданный в опции -r с_идентификатор может быть либо тем, который указывался в команде get при извлечении версии, либо тем, который выдала команда get в качестве нового с_идентификатора [см. ]. Если с_идентификатор неоднозначно определяет версию или если он не указан, но требуется, выдается диагностика.

-s Подавляет выдачу на стандартный вывод с_идентификатора созданной версии и числа внесенных, удаленных и неизменных строк в SCCS-файле.

-n После внесения изменений g-файл не удаляется (без этой опции g-файл удаляется).

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

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

Если опция -m не указана, а стандартный ввод назначен на терминал, перед чтением списка номеров запроса на модификацию со стандартного ввода на стандартный вывод выдается запрос MRs?. Если стандартный ввод назначен не на терминал, указанный запрос не выдается. Запрос MRs? всегда предшествует запросу comments? (см. опцию -y).

Номера в списке разделяются пробелами и/или символами табуляции. Неэкранированный перевод строки завершает список.

Если флаг v наделен значением [см. ], оно трактуется как имя программы (или процедуры shell'а) для проверки корректности номеров. Если программа проверки выдает ненулевой код завершения, delta терминируется (считая, что номера запросов некорректны).

-y[комментарий] Дополнительный текст для описания причины внесения изменений. Допустим и пустой комментарий.

Если опция -y не указана, а стандартный ввод назначен на терминал, на стандартный вывод выдается запрос comments?. Если стандартный ввод назначен не на терминал, указанный запрос не выдается. Неэкранированный перевод строки завершает комментарий.

-p Delta выдает на стандартный вывод в формате различия в состояниях SCCS-файла до и после внесения изменений.


ФАЙЛЫ

g- файл Существует до выполнения delta, удаля- ется при завершении delta. p-файл Существует до выполнения delta, может остаться после завершения delta. q-файл Создается при выполнении delta; удаля- ется при завершении delta. x-файл Создается при выполнении delta; переи- меновывается в SCCS-файл при завершении delta. z-файл Создается при выполнении delta; удаля- ется во время выполнения delta. d-файл Создается при выполнении delta; удаля- ется при завершении delta. /usr/bin/bdiff Программа для выявления различий между "извлеченным" файлом и текущим состоя- нием g-файла.

СМ. ТАКЖЕ

admin(1), , , , , , rmdel(1). sccsfile(4) в Справочнике программиста.

ДИАГНОСТИКА

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

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

Строки, начинающиеся с ASCII-символа SOH (CTRL+A, код 001), могут быть помещены в SCCS-файл только в экранированном виде. Этот символ имеет специальный смысл для SCCS [см. ] и приводит к ошибке.

Если get генерирует данные большого об ема, следует избегать большого числа обращений к команде get для разных SCCS-файлов, за которыми следуют delta для всех этих файлов. Вместо этого рекомендуется использовать несколько последовательностей get/delta.

Если в команде delta указан стандартный ввод (-), обязательно должны присутствовать опции -y и (если необходимо) -m. Отсутствие этих опций приводит к ошибке.

Длина текстовых комментариев ограничена 512 символами.









DEVNM(1M)


НАЗВАНИЕ

devnm - имя устройства

СИНТАКСИС

/etc/devnm [полное_имя ...]

ОПИСАНИЕ

Команда devnm идентифицирует специальный файл, ассоциированный с файловой системой, содержащей файл с заданным полным_именем.

Эта команда чаще всего используется процедурой /etc/brc [см. ] для создания элемента таблицы смонтированных файловых систем, описывающего корневую файловую систему.

ПРИМЕР

Команда

/etc/devnm /usr

выдаст в качестве результата

/dev/dsk/hd0s0 /usr

если каталог /usr расположен на /dev/dsk/hd0s0.

ФАЙЛЫ

/dev/dsk/* /etc/mnttab

СМ. ТАКЖЕ

.



DF(1)


НАЗВАНИЕ

df - сведения о числе свободных блоков и описателей файлов

СИНТАКСИС

df [-t] [-f] [файловая_система ...] [каталог ...]

ОПИСАНИЕ

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

Файловая_система может быть задана либо именем устройства (например, /dev/dsk/hd0s0), либо именем каталога, на который она смонтирована (например, /mnt).

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

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

Команда df использует следующие опции:

-t Наряду со сведениями о числе свободных блоков и незанятых описателей выдается также общее число блоков и описателей файлов. -f Число свободных блоков определяется путем прямого подсчета по списку свободных блоков, а не по значению счетчика в суперблоке (информация о незанятых описателях не выдается).

ПРИМЕЧАНИЯ

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

ФАЙЛЫ

/dev/dsk/* /etc/mnttab

СМ. ТАКЖЕ

du(1). fs(4), в Справочнике программиста. mount(1M) в Справочнике администратора.



DFILE(4)


НАЗВАНИЕ

dfile - файл с информацией об устройствах

ОПИСАНИЕ

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

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

Первая часть файла устройств

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

имя_устройства вектор адрес уровень число

Имя_устройства задается так же, как в файле , где оно располагается в поле 1 строк из первой части и состоит не более чем из 8 символов [см. ].

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

Адрес является шестнадцатеричным адресом устройства; массив адресов устройств создается автоматически (например, hd_addr [ ]).

Уровень - это уровень запроса шины или уровень прерываний (от 1 до 7). Он используется в массиве уровней прерываний (например, hd_ilev [ ]), который создается при указании буквы l в поле 4 строк первой части файла .

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

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

Вторая часть файла устройств


Вторая часть содержит строки шести различных типов. Обязательны только строки первых четырех типов. Порядок спецификаций может быть произвольным.

Спецификация устройств для корня, каналов и дампа


Три строки по три поля в каждой описывают устройства для корневой файловой системы, для создания каналов и для выдачи дампа при сбое системы:

root имя_устройства младший_номер pipe имя_устройства младший_номер dump имя_устройства младший_номер

Младший_номер является восьмеричным. Спецификация устройства для подкачки


Одна строка с пятью полями задает устройство, которое будет использоваться для подкачки:

swap имя_устройства младший_номер нач_блок число

Нач_блок есть блок диска (десятичный), с которого начинается область подкачки; число задает размер области в блоках. Спецификация типа файловой системы


Несколько строк по пять полей в каждой содержат описания типов файловых систем:

filesys ид_1 флаг_1 ид_2 флаги_2

Ид_1 есть имя типа файловой системы (не более чем из четырех символов) в том виде, как оно выдается компонентом fs_namei ( ) структуры fstypsw [см. <sys/ conf.h>].

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

Ид_2 есть имя типа файловой системы (не более чем из восьми символов) в том виде, как оно хранится в структуре fsinfo [см. <sys/conf.h>].

Если файловая система должна уведомляться о некоторых действиях, следует установить соответствующие флаги из флагов_2. Уведомление состоит в вызове компонента fs_notify ( ) структуры fstypsw. Можно установить такие флаги (или их комбинацию):
1Изменение каталога. 2Изменение корня. 4Позиционирование. Например, строка

fylesys s5 0 S51k 04

описывает стандартную файловую систему версии 5. Спецификация режима работы с линией


Несколько строк файла устройств по три поля в каждой описывают режимы работы с линией:

linemod имя_режима список_обработчиков



Имя_режима состоит не более чем из четырех символов.

Список_обработчиков задается как цепочка символов. Буква соответствует существующему обработчику, отсутствие обозначается символом -. Могут задаваться следующие обработчики:
mОбработка прерываний модема. oОбработка вывода. iОбработка ввода. OОбработка открытия. CОбработка закрытия. RОбработка чтения. WОбработка записи. IОбработка управления. Стандартный режим задается как -oiOCRWI, то есть обрабатывать все, кроме прерываний модема. Спецификация фактических параметров


Каждый параметр, упомянутый в файле , может получить (новое) значение. Строка спецификации параметра состоит из двух полей:

имя_параметра значение

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

stream имя_модуля имя_структуры

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

Имя_структуры есть имя указателя на структуру типа streamtab. И имя_модуля, и имя_структуры должны состоять не более чем из восьми символов.

Третья часть файла устройств

Третья часть содержит строки, каждая из которых начинается с определенного ключевого слова. Играет роль порядок этих строк.

Спецификация нестандартных драйверов


Данная спецификация может содержать несколько строк по два поля в каждой:

force идентификатор

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


Данная спецификация может содержать несколько строк по три поля в каждой:

alien адрес_вектора сторонний_обработчик

Адрес_вектора есть шестнадцатеричный адрес обычного вектора прерываний, подлежащих дополнительной обработке, а сторонний_обработчик задается шестнадцатеричным адресом точки входа. Если с адресом_вектора не ассоциирован обработчик прерываний, то сторонний_обработчик помещается в вектор. В противном случае в программе low.s порождаются команды [см. ], чтобы сторонний_обработчик получал управление, только если прерывание произошло в привилегированном режиме. Спецификация множественной обработки прерываний




Данная спецификация может содержать несколько строк, в каждой из которых по четыре или пять полей:

dup флаги адрес_вектора обработчик аргумент

Флаги представляют собой битную маску. Биты интерпретируются следующим образом:
1Если обработчик вернул 0, перейти на нормальную точку возврата из прерывания ("intret"). 2Если обработчик вернул 0, перейти на нормальную точку возврата из ловушки ("alltraps"). 4Если обработчик вернул 0, перейти на точку возврата по равенству ("beq return"). 10Программе обработки прерывания должен быть передан аргумент. Адрес_вектора есть шестнадцатеричный адрес вектора прерываний. Обработчик - есть имя программы обработки прерываний с необязательным аргументом. Цель данной спецификации - обеспечить возможность задания нескольких программ обработки для одного прерывания. Обработчики вызываются в порядке их указания в файле устройств; затем вызывается нормальная программа обработки прерываний. Если биты 1, 2 или 4 флагов равны 1, а обработчик вернул 0, оставшиеся обработчики не вызываются. Спецификация конфигурации памяти


Данная спецификация может содержать несколько строк, в каждой из которых по четыре или пять полей:

ram флаги мин_адрес макс_адрес [размер]

Флаги представляют собой битную маску. Биты интерпретируются следующим образом:
1Память не имеет контроля четности и, следовательно, не требует инициализации после включения питания. 2Может существовать только единый блок памяти, от мин_адреса до макс_адреса-1. 4В диапазоне от мин_адреса до макс_адреса-1 может располагаться несколько блоков памяти, каждый указанного размера. Мин_адрес, макс_адрес и размер являются шестнадцатеричными. Цель данной спецификации - предоставить ядру ОС информацию о конфигурации памяти, содержащей разрывы. Мин_адрес определяет минимальный адрес, по которому может находиться память, макс_адрес-1 есть верхняя граница. Если в этих пределах содержится несколько плат памяти, часть которых может отсутствовать, каждая из них должна иметь заданный размер.



Если память помечена флагами со значением 2, ядро ОС осуществляет запись в последовательные ячейки, начиная с мин_адреса, пока не возникнет ошибка памяти. Если установлен флаг 4, ядро ОС проверяет каждый поддиапазон указанного размера. Если память не нуждается в инициализации, для определения наличия памяти проверяется только первый байт диапазона (флаг 2) или поддиапазона (флаг 4).

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

ФАЙЛЫ

/usr/src/uts/dfile /usr/src/uts/master /usr/src/uts/low.s /usr/src/uts/conf.c /usr/include/sys/conf.h

СМ. ТАКЖЕ

.

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









DIAL(3C)


НАЗВАНИЕ

dial - установление связи через терминальную линию

СИНТАКСИС

#include <dial.h>

int dial (call) CALL *call;

void undial (fd) int fd;

ОПИСАНИЕ

Функция dial возвращает дескриптор файла для терминальной линии, открытой на ввод/вывод. Аргументом функции dial является указатель на структуру типа CALL (тип определен во включаемом файле ).

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

Тип структуры CALL определяется во включаемом файле следующим образом:

typedef struct { struct termio *attr; /* Указатель на структуру атри- бутов termio */ int baud; /* Скорость передачи */ int speed; /* Модем 212A: 300 или 1200 */ char *line; /* Имя устройства для терминаль- ной линии */ char *telno; /* Указатель на цепочку - номер телефона */ int modem; /* Управление модемом для прямо- го соединения */ int *device; /* Сюда будет записано имя уст- ройства, через которое уста- новлено соединение */ int dev_len; /* Длина имени устройства */ } CALL;

Элемент speed предназначен только для использования при установлении соединения по телефонной линии; в этом случае его значение должно равняться 300 или 1200 для модемов 113A или 212A. Отметим, что модем 113A, а также модем 212A, установленный в низкоскоростной режим, могут передавать на любой скорости от 0 до 300 бит в секунду. Однако модем 212A, установленный в высокоскоростной режим может передавать и принимать только на скорости 1200 бит в секунду.

Элемент baud задает желаемую скорость передачи. Например, можно установить baud равным 110, а speed равным 300. Однако если компонент speed равен 1200, baud также должен равняться 1200.

Если нужная терминальная линия является прямым соединением, то указатель на имя устройства должен быть помещен в элемент line. Допустимые значения для таких терминальных устройств содержатся в файле L-devices. В этом случае не требуется заполнять элемент baud, его значение определяется из файла L-devices.

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

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

Элемент attr является указателем на структуру типа termio, описанную во включаемом файле . Элемент attr может быть равен NULL, но если это не так, то все атрибуты, заданные компонентами структуры termio, будут установлены для терминальной линии перед попыткой выполнить соединение, что существенно для таких атрибутов, как четность и скорость передачи.

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

Элемент devlen содержит длину имени устройства, записанного в массив device.

ФАЙЛЫ


/usr/lib/uucp/L-devices /usr/spool/uucp/LCK..устройство

СМ. ТАКЖЕ

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

, , .

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

ДИАГНОСТИКА

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

INTRPT (-1) /* Случилось прерывание */ D_HUNG (-2) /* Повешена трубка (чтобы прервать запись) */ NO_ANS (-3) /* В течение 10 секунд нет ответа */ ILL_BD (-4) /* Некорректная скорость обмена */ A_PROB (-5) /* Ошибка при наборе номера */ L_PROB (-6) /* Ошибка в линии связи */ NO_Ldv (-7) /* Не открывается файл L-devices */ DV_NT_A (-8) /* Требуемое устройство недоступно */ DV_NT_K (-9) /* Требуемое устройство неизвестно */ NO_BD_A (-10) /* Нет доступных устройств для работы на указанной скорости обмена */ NO_BD_K (-11) /* Нет известных устройств для работы на указанной скорости обмена */

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

Функция несовместима со стандартными сетевыми средствами (см. подраздел 1C) версии 5 ОС UNIX.

Включение файла <dial.h> автоматически приводит к включению файла <termio.h>.

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

СЮРПРИЗЫ

Функция dial выдает системный вызов на 3600 секунд и затем перехватывает сигнал SIGALRM, "массируя" файл-семафор LCK..устройство и поддерживая тем самым занятость линии. Без подобной меры может удалить файл LCK..устройство во время своих сеансов чистки, повторяющихся каждые 90 минут. Если сигнал SIGALRM придет во время выполнения пользователем системных вызовов или , они закончатся неудачей. Если программа пользователя должна выполняться более часа, в случае неудачи системных вызовов read следует проверять значение переменной errno (errno==EINTR), после чего read должен быть выдан повторно.









DIAL(8)


НАЗВАНИЕ

dial, uuchat - управляет набором кодов в модеме.

СИНТАКСИС

/usr/lib/uucp/dialX ttyname telno speed /usr/lib/uucp/dialX -h ttyname speed /usr/lib/uucp/uuchat ttyname speed chat-script

ОПИСАНИЕ

/usr/lib/uucp/dialX осуществляет набор кодов в модеме, присоедененном к терминалу ttyname. (X - имя программы набора кодов, например, HA1200.) Опция -h используется для отключения модема.

Программы , и используют /usr/lib/uucp/dialX. Поставляется четыре программы набора кодов. dialHA12 предназначается для модемов Hayes Smartmodem 1200 и 1200B или совместимых с ними. dialHA24 предназначается для модемов Hayes Smartmodem 2400 или совместимых с ними. dialVA3450 предназначается для модемов серии Racal-Vadic VA3450-Series. dialTBIT предназаначается для модема Telebit Trailblazer. Исходный тексты этих программ поставляются в соответствующих файлах .c.

uucico(ADM) вызывает dial с параметрами ttyname, telno (телефонный номер) и speed. dial пытается набрать этот телефонный номер на заданной линии на заданной скорости. При использовании dialHA12 или dialHA24 параметр speed может находиться в некотором диапазоне скоростей передачи информации. Этот диапазон задается в виде:

lowrate - highrate

где lowrate - минимально допустимая скорость передачи данных на линии связи, highrate - максимальная. Программа dial возвращает код завершения попытки установления связи:

бит 0x80 =1  Попытка осуществления связи не удалась. биты 0x0f =   Если бит 0x80=1, то эти биты кода завершения таковы:  0общая или неопознанная ошибка.  1линия занята.  2сигнал прерван программой набора кодов.  3неверные аргументы программы набора кодов.  4неверный телефонный номер.  5неверная скорость передачи данных или программа набора кодов не смогла установить связь на этой скорости.  6линия не открывается.  7ошибка ввода/вывода на линии.  8ожидание соединения.  9звуковой сигнал не обнаружен.  10не используется.  11не используется.  12не используется.  13телефон занят.  14несущая частота не обнаружена.  15удаленная система не отвечает.  Коды 12-15 используются для указания на то, что проблема - на удаленном конце.

<


/p>

Если бит 0x80 равен 0, то эти биты используются для обозначения действительной скорости передачи данных. Если здесь содержится 0, то эта скорость совпадает со скоростью, использовавшейся при наборе телефонного номера, или с максимальной скоростью, если был задан диапазон скоростей. В противном случае, эти четыре бита представляют собой биты CBAUD в tty-структурах struct termio c_flag, struct sgttyb sg_ispeed и sg_ospeed.

Вы можете скопировать или модифицировать один из файлов /usr/lib/uucp/dialHA12.c и т.д. для использования другого модема. В /usr/lib/uucp имеется makefile (файл компиляции), который может быть модифицирован для новой программы набора кодов и может использоваться для компиляции новой программы.

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

Программа dial, которая будет использоваться на конкретной линии, задается в пятом поле структуры на соответствующей строке в файле /usr/lib/uucp/Devices. Если программа с таким именем отсутствует, тогда uucico и cu используют встроенную программу набора кодов вместе с программой chat-script, соответствующей этому имени в /usr/lib/uccp/Dialers.

dial -h запускается процессом getty, когда он вновь порождается на линии, совмещающей двусторонний режим вызова. Если программа dial отсутствует, тогда getty использует /usr/lib/uucp/uuchat, передавая ей & chat-script из файла /usr/lib/uucp/Dialers.
/usr/lib/uucp/Dialers  /usr/lib/uucp/dialVA3450программа набора кодов для модема Racal Vadic 3450 /usr/lib/uucp/dialHA12программа набора кодов для модема Hayes Smartmodem 1200/1200B /usr/lib/uucp/dialHA24программа набора кодов для модема Hayes Smartmodem 2400 /usr/lib/uucp/makefileкомпилятор новых программ набора кодов /usr/lib/uucp/dialTBITпрограмма набора кодов для модема Telebit Trailblazer /usr/lib/uucp/uuchat  СМ. ТАКЖЕ

, , , getty(5)

ПРИМЕЧАНИЯ

Для компиляции и установки новых программ набора кодов вы должны инсталлировать Расширенную систему UNIX.

DIFF(1)


НАЗВАНИЕ

diff - выявление различий между файлами

СИНТАКСИС

diff [-e] [-f] [-b] [-h] файл1 файл2

ОПИСАНИЕ

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

n1 a n3,n4 n1,n2 d n3 n1,n2 c n3,n4

Эти строки напоминают команды редактора ed для преобразования файла1 в файл2. Номера после букв относятся к файлу2. Равным образом при взаимной замене a на d и чтении строк в обратном порядке получается информация о том, как преобразовать файл2 в файл1. Как и в редакторе ed, пары, состоящие из одинаковых номеров n1 = n2 или n3 = n4, сокращаются до одного номера.

За каждой из этих строк следуют затрагиваемые ею строки файла1, отмеченные знаком .

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

-b Проигнорировать пробелы и символы табуляции в конце строк; остальные цепочки пробелов и табуляций считать одинаковыми. -e Сгенерировать набор команд a, c и d редактора ed, который может быть использован для воссоздания файла2 из файла1. -f Выдать аналогичный набор, но в обратном порядке; для ed этот набор не используется. -h Выполнить сравнение быстро, но без гарантий. Команда с этой опцией работоспособна, только если различающиеся фрагменты коротки и четко разделены; однако в таком случае она применима к файлам неограниченной длины. Опции -e и -f несовместимы с -h.

В сочетании с опцией -e приведенная ниже shell-процедура может быть полезной для поддержки нескольких версий файла. При этом необходим только файл-источник ($1) и цепочка наборов команд для ed ($2, $3, ...), преобразующих одну версию в другую и изготовленных посредством diff. "Последняя версия" получается как стандартный вывод процедуры

(shift; cat $*; echo '1,$p') | ed - $1

За исключением редких случаев diff находит наименьшее достаточное множество отличий в файлах.

ФАЙЛЫ

/tmp/d????? /usr/lib/diffh Для опции -h.

СМ. ТАКЖЕ

cmp(1), ,

КОДЫ ЗАВЕРШЕНИЯ

0 Различий нет. 1 Различия есть. 2 При выполнении команды зафиксированы ошибки.

СЮРПРИЗЫ

Наборы команд, получаемые по опциям -e и -f, не учитывают возможности возникновения строк, состоящих из единственной точки (.).



DIFF3(1)


НАЗВАНИЕ

diff3 - выявление различий между тремя файлами

СИНТАКСИС

diff3 [-e] [-x] [-3] файл1 файл2 файл3

ОПИСАНИЕ

Команда diff3 сравнивает три версии файла и выдает различающиеся фрагменты текста, помеченные следующим образом:

==== Все три файла различны. ====1 Отличия в файле1. ====2 Отличия в файле2. ====3 Отличия в файле3.

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

f: n1 a Добавить текст в файл f, где f = 1, 2 или 3, после строки n1. f: n1,n2 c Изменить текст в строках с n1 по n2. Если n1=n2, то запись может быть сокращена до n1.

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

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

-e Сгенерировать набор команд для редактора ed, который добавляет к файлу1 отличия между файлом2 и файлом3, то есть фрагменты, которые в нормальном режиме помечаются как ==== и ====3. -x (-3 ) Делает то же для фрагментов, помеченных как ==== (====3).

Следующая командная строка shell'а может быть использована для применения полученного посредством diff3 набора редактирующих действий (помещенного в файл script) к файлу f1:

(cat script; echo '1,$p') | ed -s f1

ФАЙЛЫ

/tmp/d3* /usr/lib/diff3prog

СМ. ТАКЖЕ

diff(1).

СЮРПРИЗЫ

Строки текста, состоящие из единственной точки, сводят на нет эффект от опции -e.

Diff3 не может обрабатывать файлы длиной более 64 Кб.



DIFFMK(1)


НАЗВАНИЕ

diffmk - отметить различия между файлами

СИНТАКСИС

diffmk файл1 файл2 файл3

ОПИСАНИЕ

Diffmk - это shell-процедура, которая сравнивает две версии файла и создает третий файл, содержащий команды типа "пометить изменения". Файл1 и файл2 - старая и новая версии файла. Diffmk создает файл3, который содержит строки из файла2 плюс вставленные "пометки изменений" (.mc). В файле3 измененный или вставленный текст обрамлен строками вида

.mc | текст .mc |

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

.mc * текст .mc *

Diffmk может использоваться для создания листингов программ на языке C (и других) с "пометками изменения". Типичная команда имеет при этом вид

diffmk old.c new.c tmp; nroff macs tmp | pr

где файл macs имеет следующий вид

.pl 1 .ll 77 .nf .eo .nc

Запрос .ll может использоваться для указания длины строки в зависимости от природы распечатываемой программы. Запросы .eo и .nc необходимы по-видимому только для C-программ.

Если символы | и * не являются подходящими, можно отредактировать копию процедуры diffmk для их замены.

СМ. ТАКЖЕ

.

СЮРПРИЗЫ

Из эстетических соображений может потребоваться ручное редактирование результатов. Отличия файлов, включающие только форматирующие запросы, могут нежелательным образом повлиять на вывод. Например, замена .sp на .sp 2 приводит к "пометкам изменения" на предыдущей или последующей строке вывода.

На нашей установке команда diffmk не работает.



DIR(4)


НАЗВАНИЕ

dir - формат каталогов

СИНТАКСИС

#include <sys/dir.h>

ОПИСАНИЕ

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

#ifndef DIRSIZ #define DIRSIZ 14 #endif

struct direct { ushort d_ino; char d_name [DIRSIZ]; };

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

СМ. ТАКЖЕ

.



DIRCMP(1)


НАЗВАНИЕ

dircmp - сравнение каталогов

СИНТАКСИС

dircmp [-d] [-s] [-w ширина] кат1 кат2

ОПИСАНИЕ

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

-d Для каждой пары файлов с совпадающими именами сравнивается их содержимое и выводится информация, показывающая, что должно быть изменено в этих файлах для приведения их в соответствие. Формат вывода описан в . -s Подавление сообщений о файлах с одинаковыми именами. -w ширина Задается ширина выдачи. По умолчанию ширина равна 72 колонкам.

СМ. ТАКЖЕ

cmp(1), .



DIRECTORY(3X)


НАЗВАНИЕ

directory: opendir, readdir, telldir, seekdir, rewinddir, closedir - операции над каталогами

СИНТАКСИС

#include <sys/types.h>

#include <dirent.h>

DIR *opendir (filename) char *filename;

struct dirent *readdir (dirp) DIR *dirp;

long telldir (dirp) DIR *dirp;

void seekdir (dirp, loc) DIR *dirp; long loc;

void rewinddir (dirp) DIR *dirp;

void closedir (dirp) DIR *dirp;

ОПИСАНИЕ

Функция opendir открывает каталог с именем filename и связывает с ним поток каталога. Opendir возвращает в качестве результата указатель, который используется в последующих операциях для идентификации потока каталога. Пустой указатель возвращается, если файл filename не доступен или не является каталогом, либо, если команда malloc(1M) не может выделить достаточного об ема памяти для структуры типа DIR или для буферов.

Функция readdir выдает указатель на следующий активный элемент каталога. Указатели на неактивные элементы каталога не выдаются. При достижении конца каталога или при выявлении некорректной позиции в каталоге возвращается пустой указатель.

Функция telldir выдает текущую позицию в указанном потоке каталога.

Функция seekdir устанавливает позицию для последующей операции readdir над потоком каталога. Данная позиция совпадает с той, которая была получена в результате выполнения операции telldir, вычислившей loc. Значения, которые возвращает telldir, корректны только в том случае, если каталог не сжимался и не расширялся. Такая проблема не возникает в случае версии 5, но может возникнуть для некоторых других типов файловых систем.

Операция rewinddir переустанавливает в начало позицию в указанном потоке каталога.

Операция closedir закрывает указанный поток каталога и освобождает структуру DIR.

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

opendir:

[ENOTDIR] Компонент маршрутного имени filename не является каталогом. [EACCES] Для компонента маршрутного имени filename отсутствует право на поиск. [EMFILE] Будет превышено максимально допустимое число описателей файлов. [EFAULT] Аргумент filename указывает за пределы отведенного процессу адресного пространства.


readdir:

[ENOENT] Текущая позиция каталога не соответствует корректному элементу. [EBADF] Описатель файла, определенный аргументом dirp, в данный момент некорректен. Возможная причина - поток был закрыт.

telldir, seekdir и closedir:

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

ПРИМЕР

Приведем фрагмент программы для поиска в каталоге элемента name:

dirp = opendir ("."); while ((dp = readdir (dirp)) != NULL) if (strcmp (dp->d_name, name) == 0) { closedir (dirp); return FOUND; } closedir (dirp); return NOT_FOUND;

СМ. ТАКЖЕ

, .

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

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

DIRENT(3)


НАЗВАНИЕ

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

СИНТАКСИС

#include <sys/types.h>

#include <sys/dirent.h>

ОПИСАНИЕ

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

Структура dirent определена ниже.

struct dirent { long d_ino; off_t d_off; unsigned short d_reclen; char d_name[1]; };

Здесь d_ino - это номер, уникальный для каждого файла файловой системы. Поле d_off содержит смещение этой структуры каталога в действительном каталоге файловой системы. Поле d_name содержит начало символьного массива, дающего имя этой структуры каталога. Это имя завершается нулем и может содержать самое большее MAXNAMLEN символов. Это реализует структуры каталогов, независимые от файловой системы и являющиеся конструкциями с переменной длиной. Значение d_reclen задает длину записи этой структуры. Эта длина определяется количеством байтов между текущей и следующей структурами, так что следующуя структура оказывается на границе длинного типа.

ФАЙЛЫ

/usr/include/sys/dirent.h

СМ. ТАКЖЕ




НАЗВАНИЕ

dirent - формат элемента каталога, не зависящий от типа файловой системы

СИНТАКСИС

#include <sys/dirent.h> #include <sys/types.h>

ОПИСАНИЕ

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

Структура dirent такова:

struct dirent { long d_ino; off_t d_off; unsigned short d_reclen; char d_name [1]; };

Поле d_ino - это число, которое уникально для каждого файла в файловой системе. Значением поля d_off служит смещение данного элемента в реальном каталоге. Поле d_name есть начало массива символов, задающего имя элемента каталога. Данное имя ограничено нулевым байтом и может содержать не более MAXNAMLEN символов. Тем самым описываемая структура имеет переменную длину, хранящуюся в поле d_reclen. Эта длина определяется как число байт между текущим элементом и следующим, причем следующий элемент всегда будет выравнен по границе значения типа long.

СМ. ТАКЖЕ

.



DIRNAME(1)


НАЗВАНИЕ

dirname - получение имени каталога по составному имени файла

СИНТАКСИС

dirname цепочка_символов

ОПИСАНИЕ

Команда dirname выдает на стандартный вывод составное имя, обозначенное цепочкой_символов, за исключением последнего уровня. Уровни разделяются символом /. Обычно используется между символами подстановки (``) внутри shell-процедур.

ПРИМЕР

После выполнения оператора

NAME=`dirname /usr/src/uts/io/pit.c`

переменная NAME получит значение /usr/src/uts/io.

СМ. ТАКЖЕ

basename(1), .



DIS(1)


НАЗВАНИЕ

dis - дизассемблер об ектного кода

СИНТАКСИС

dis [-o] [-V] [-L] [-s] [-d секция] [-da секция] [-F функция] [-t секция] [-l цепочка] файл ...

ОПИСАНИЕ

Команда dis выдает на стандартный вывод листинг файлов на языке ассемблера. Файлы могут быть как об ектными, так и архивами (библиотеками) об ектных файлов. Листинг содержит команды ассемблера и их восьмеричное или шестнадцатеричное представление.

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

-o Выводить числа в восьмеричном виде. По умолчанию используется шестнадцатеричная система счисления. -V Вывести в стандартный протокол номер версии дизассемблера. -L Найти в таблице имен метки исходной программы для вставки их в листинг. Данная опция работает только в том случае, если файл был откомпилирован с дополнительной отладочной информацией [например, с опцией -g для ]. Синтаксис выдаваемых меток C-подобен. -s Выполнять символьное дизассемблирование, то есть подставлять в качестве операндов имена там, где это возможно. Символьная информация будет располагаться на следующей строке после команды. Для того, чтобы было выполнено максимально возможное символьное дизассемблирование, файл должен быть откомпилирован с дополнительной отладочной информацией [например, с опцией -g для ]. Синтаксис выдаваемых имен C-подобен. -d секция Дизассемблировать поименованную секцию как секцию данных, выводя смещение данных относительно начала секции. -da секция Дизассемблировать поименованную секцию как секцию данных, выводя фактические адреса. -F функция Дизассемблировать в об ектных файлах, перечисленных в командной строке, только указанную функцию. Опция -F может быть указана в командной строке несколько раз. -t секция Дизассемблировать поименованную секцию как секцию команд. -l цепочкаДизассемблировать библиотечный файл, заданный цепочкой. Полное имя библиотечного файла формируется как LIBDIR/libцепочка.a. Например, команду dis -l x -l z можно применить для дизассемблирования библиотек libx.a и libz.a.


При наличии опций -d, -da или -t дизассемблируются только заданные в опциях секции файлов. В противном случае дизассемблируются все секции команд.

Число, стоящее в начале строки листинга и заключенное в квадратные скобки, например [5], означает, что строка C-программы с указанным номером, на которую можно установить точку прерывания, открывается машинной командой из данной строки. Эти номера строк будут выдаваться только в том случае, если файл был откомпилирован с дополнительной отладочной информацией [например, с опцией -g для ]. Выражение типа в поле операнда, следующее за относительным смещением в команде перехода, означает вычисленный адрес внутри секции, на который передается управление. Имя функции выводится с первой позиции, за ним стоят скобки ( ).

ФАЙЛЫ

LIBDIR Обычно это /lib.

СМ. ТАКЖЕ

as(1), , , a.out(4).

ДИАГНОСТИКА

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

СЮРПРИЗЫ

Опция -s не обрабатывается данной версией дизассемблера.


DISABLE(1)


НАЗВАНИЕ

disable - блокировка принтеров

СИНТАКСИС

disable [-c] [-r [причина]] принтер ...

ОПИСАНИЕ

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

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

ФАЙЛЫ

/usr/spool/lp/*

СМ. ТАКЖЕ

enable(1), , .


ИМЯ

disable - Отключает терминалы и принтеры.

СИНТАКСИС

disable tty ... disable [-c][-r[reason]]printers

ОПИСАНИЕ

Что касается терминалов, эта программа манипулирует файлом /etc/ttys и выдает сигнал команде init на запрещение вхождения в систему с некоторого терминала. Что касается принтеров, команда disable останавливает требования на печать, отправленные к заданному параметром printers принтеру. Могут быть использованы следующие опции:

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

ПРИМЕРЫ

В этом примере принтер с именем linepr блокируется из-за сбоя бумаги ("paper jam"):

disable -r"paper jam" linepr

ФАЙЛЫ

/dev/tty* /etc/ttys /usr/spool/lp/*

СМ. ТАКЖЕ

login(5), , ttys(3), getty(5), init(5), , , , .



DISKCP(1)


ИМЯ

diskcp, diskcmp - Копирует, сравнивает гибкие диски.

СИНТАКСИС

diskcp [-f][-d][-s][-48ds9][-96ds9][-96ds15][-135ds9] [-135ds18] diskcmp [-d][-s][-48ds9][-96ds9][-96ds15][-135ds9][-135ds18]

ОПИСАНИЕ

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

Опциями являются:

-f Перед тем, как копировать образ, выполняется форматирование целевого гибкого диска (только для команды diskcp). -d Компьютер оснащен двумя накопителями для гибких магнитных дисков. Команда diskcp копирует образ непосредственно на целевой гибкий диск. -s Использует команду , чтобы сравнить содержимое исходного и целевого гибких дисков; выводит сообщение об ошибке, если они не соответствуют друг другу. -48ds9 Эта установка предназначена для гибких дисков с низкой плотностью и 48 дорожками на дюйм. Она является установкой, используемой по умолчанию. -96ds9 Эта установка предназначена для гибких дисков с высокой плотностью и 96 дорожками на дюйм. -96ds15 Эта установка предназначена для гибких дисков с учетверенной плотностью и 96 дорожками на дюйм. -135ds9 Эта установка предназначена для гибких дисков диаметром 3.5 дюйма с высокой плотностью и 135 дорожками на дюйм. -135ds18 Эта установка предназначена для гибких дисков диаметром 3.5 дюйма с учетверенной плотностью и 135 дорожками на дюйм.

При использовании опций -96ds9 и -96ds15 для команды diskcp в случае, если первый целевой диск не отформатирован, программа отметит это, произведет форматирование этого диска и выполнит копирование. Если требуется еще одна копия и вставлен еще один неотформатированный целевой диск, то команда diskcp завершится с сообщением "System Error" (Системная ошибка). Для того, чтобы сделать другую копию, надо выйти из программы, отформатировать гибкий диск и повторно вызвать команду diskcp.

Команда diskcmp функционирует аналогично команде diskcp. Она, с использованием утилиты cmp, сравнивает содержимое первого гибкого диска с содержимым второго гибкого диска.

ПРИМЕРЫ


Чтобы сделать копию гибкого диска, поместите исходный гибкий диск в накопитель и введите команду:

diskcp

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

Если Вы имеете два накопителя для гибких дисков, укажите в командной строке флаг -d:

diskcp -d

ЗAМEЧAНИЯ

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

ФАЙЛЫ

/usr/bin/diskcp /usr/bin/diskcmp /tmp/disk$$

СМ. ТАКЖЕ

, , .









DISKUSG(1M)


НАЗВАНИЕ

diskusg - сбор сведений о занятом пользователями диско- вом пространстве

СИНТАКСИС

/usr/lib/acct/diskusg [-s] [-v] [-i список_имен_файловых_систем] [-p файл_с_информацией_о_пользователях] [-u файл_находок] [файл ...]

ОПИСАНИЕ

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

идентификатор_пользователя входное_имя число_занятых_блоков

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

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

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

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

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

-p файл_с_информацией_о_пользователях Использовать заданный файл_с_информацией_о_пользователях вместо подразумеваемого файла /etc/passwd.

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

Как правило, результаты утилиты diskusg используются в качестве исходных данных для утилиты acctdisk [см. ], которая преобразует их в сводный формат tacct [см. ]. Обычно утилита diskusg запускается из процедуры dodisk [см. ].

ПРИМЕР

Получение статистики использования дискового пространства на текущий день:

for i in /dev/dsk/hd0s[01] do diskusg $i > dtmp.`basename $i` & done wait diskusg -s dtmp.* | sort +0n +1 | acctdisk > diskacct

ФАЙЛЫ

/etc/passwd Файл с информацией о пользователях.

СМ. ТАКЖЕ

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

СЮРПРИЗЫ

Утилита diskusg неверно обрабатывает свободные описатели файлов, в связи с чем опции -v и -p задавать не рекомендуется.

Опция -i неработоспособна.



DIVVY(8)


НАЗВАНИЕ

divvy - утилита разбиения диска

СИНТАКСИС

divvy -b block_device -c character_device [-v virtual_drive] [-p physical_drive] [-i] [-m]

ОПИСАНИЕ

divvy разбивает раздел диска, созданный с помощью , на отдельные области, известные как "части" ("divisions"). Часть определяется уникальными главным (большим) и малым (меньшим) числами устройства и может использоваться для файловой системы, области свопинга или выделения дефектных мест на данном устройстве.

С помощью divvy вы можете:

Разбить раздел диска на отдельные устройства. Создавать новые файловые системы. Изменять имена устройств файловых систем. Удалять файловые системы.

Опции

-b block_device Главное число устройства блочного интерфейса. -c character_device Главное число устройства символьного интерфейса. -v virtual_device Для разбиения виртуального устройства. -p physical_drive Для разбиения одного из нескольких физических дисков, имеющих общий контроллер. -i Разбиваемый диск будет содержать корневую файловую систему в части 0. -m Разбиваемый диск должен быть разбит на ряд монтируемых файловых систем.

Использование

Разделяемое на части устройство должно быть блочным устройством с символьным интерфейсом. Например, при использовании divvy для устройства с главным числом блочного интерфейса 1 и главным числом символьного интерфейса 1 введите:

divvy -b 1 -c 1

Опция -v определяет виртуальное устройство, подлежащее разбиению. По умолчанию используется активное устройство. Здесь "virtual drive" - это раздел MS-DOS. Числа виртуального устройства определяются утилитой fdisk(ADM).

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

Опция -i подразумевает, что разделяемое на части устройство будет содержать корневую файловую систему. При использовании этой опции дескрипторы устройств создаются по отношению к новой корневой системе, представленной, как правило, жестким диском, а не к текущей, часто находящейся на инсталляционной дискете. Создаются divvy запрашивает также размер области свопинга. Если диск является достаточно большим, то divvy выдает подсказки в отношении отдельной пользовательской файловой системы /u. В процессе формирования файловых систем divvy запрашивает информацию по поводу поблочного контроля. Если файловая система достаточно велика (более 40000 блоков), чтобы потребовать наличия временной файловой системы, то divvy спрашивает, надо ли создавать последнюю. Во время инсталляции системы XENIX divvy вызывается с опцией -i.


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

При вызове divvy из командной строки вы увидите следующее меню:

n[ame] Name or rename a division. c[reate] Create a new file system on this division. p[revent] Prevent a new file system from being created on this division. s[tart] Start a division on a different block. e[nd] End a division on a different block. r[estore] Restore the original partition table.

Please enter your choice or 'q' to quit:_

Для выбора команды введите первую букву этой команды и нажмите RETURN.

Таблица частей divvy выглядит приблизительно так:

------------------------------------------------------------- Name New File System? # First Block Last Block ------------------------------------------------------------- root no,exists 0 0 13754 swap no,exists 1 13755 15135 u no,exists 2 15136 25135 no 3 - - no 4 - - no 5 - - recover no,exists 6 25136 25145 d1057all no 7 0 25546 ------------------------------------------------------------- x blocks for divisions, y blocks reserved for the system

divvy высвечивает также информацию о расположении блоков системных таблиц и дефектных дорожек.

Если вы выберете опцию 'n', то вы сможете изменить имя устройства. divvy подсказывает вам, где ввести номер части (из приведенной выше таблицы), а затем предлагает ввести новое имя.

Опция 'c' определяет то, что данная часть станет новой, пустой файловой системой, когда вы выйдете из divvy. Введя опцию -c, вы увидите в колонке 'New File System?' слово 'yes'. Если вы примените опцию 'p', то слово 'yes' в этой колонке изменится на 'no', а содержимое данной части не изменится.

Используя опцию 's' или команду 'start', вы можете сформировать часть с другим начальным блоком. С помощью опции 'e' или команды 'end' вы можете сформировать часть с другим конечным блоком.

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



Уменьшите область свопинга с помощью команды 's'. Увеличьте часть, содержащую корневую файловую систему, с помощью команды 'e'.

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

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

СМ. ТАКЖЕ

, , , hd(5), mkdev(1), ,mknod(1).

ПРИМЕЧАНИЯ

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

cannot read division table или

cannot get drive parameters

Эти ошибки могут возникать также в том случае, когда неправильно выполены предварительные программы fdisk и badtrk.

Если вы меняете размер файловых систем (таких как /u) после того, как вы установили систему XENIX, то вам нужно запустить для заданной файловой системы программу mkfs и переустановить находящиеся там файлы. Это вызвано тем, что список свободных блоков для этой файловой системы изменился. Не забывайте выполнять резервное копирование файлов файловой системы, которую вы намерены изменить, с помощью , или , прежде чем запускать divvy. (Результирующая файловая система /dev/scratch используется для автозагрузки, если последняя запускает fsck. Имя /dev/scratch нужно ввести, если fsck запрашивает имя временного файла, при условии, что проверяемая файловая система - не больше, чем корневая файловая система.) Если использованы все подразделы (части) диска, то divvy не будет высвечивать подсказку в отношении временной файловой системы, даже если корневая файловая система является достаточно большой, чтобы нуждаться в ней.









DMESG(8)


НАЗВАНИЕ

dmesg - высвечивает системные сообщения на консоли.

СИНТАКСИС

dmesg [-]

ОПИСАНИЕ

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

Команда dmesg может вызываться периодически, если включить соответствующие инструкции в файл /usr/lib/crontab. Она может быть также вызвана автоматически при загрузке системы посредством файла /etc/rc. Смотрите параграф "Примечания".

dmesg регистрирует все выводимые ею сообщения об ошибках в файле /usr/adm/messages. Если dmesg вызывается автоматически, то файл messages увеличивается постоянно и может стать очень большим. Администратор системы должен от случая к случаю стирать содержимое этого файла.

ФАЙЛЫ

/etc/dmesg /usr/adm/messages /usr/adm/msgbuf

ПРИМЕЧАНИЯ

Команда dmesg включена в данную версию только для обратной совместимости. Устройство /dev/error предоставляет более гибкое средство регистрации сообщений об ошибках и рекомендуется вместо dsmerg. Более подробную информацию смотрите в разделе error(5).

СМ. ТАКЖЕ

, error(5), messages(5)



DOC(1)


НАЗВАНИЕ

doc - получить сведения о команде или процедуре

СИНТАКСИС

doc [-l] имя_интересующей_вас_команды_или_процедуры

ОПИСАНИЕ

Как правило, при запуске команды без аргументов она выдает формат своего вызова. Но для большинства команд достаточно полную информацию вы можете получить по команде doc. Doc выводит статьи из директории /usr/docs на терминал пользователя.

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

Команда doc реализована в виде командного файла.

ПРИМЕРЫ

doc cc вывод информации о компиляторе с языка Си doc -l log abs вывод информации о математических функ- циях на принтер

ФАЙЛЫ

/usr/docs/*



DOMAINNAME(1)FreeBSD Reference Manual


ИМЯ

domainname - устанавливает или показывает имя текущего домена YP/NIS

СИНТАКСИС

domainname [ypdomain]

ОПИСАНИЕ

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

СМ. ТАКЖЕ

ИСТОРИЯ

Команда domainname появилась в FreeBSD 1.1.



DOS(1)


ИМЯ

dos, doscat, doscp, dosdir, dosformat, dosmkdir, dosls, dosrm, dosrmdir - Обеспечивают доступ и манипулирование файлами DOS.

СИНТАКСИС

doscat [-r|-m] file ... doscp [-r|-m] file1 file2 doscp [-r|-m] file ... directory dosdir directory ... dosformat [-fqv] drive dosls directory ... dosmkdir directory ... dosrm file ... dosrmdir directory ...

ОПИСАНИЕ

Команды dos обеспечивают доступ к файлам и каталогам на дисках MS-DOS и в раздел (partition) DOS жесткого диска. Отметим, что для того, чтобы использовать эти команды в разделе DOS жесткого диска, этот раздел должен быть загрузочным, хотя может быть и не активным.

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

doscat Копирует один или более файлов DOS на устройство стандартного вывода. Если задана опция -r, файлы копируются без выполнения преобразований признака новой строки. Если задана опция -m, файлы копируются с преобразованиями признака новой строки (см. ниже раздел "Преобразования").

doscp Копирует файлы с диска DOS в файловую систему XENIX и обратно. Если заданы аргументы file1 и file2, то file1 копируется в file2. Если задан аргумент directory, то в этот каталог копируются один или более файлов, заданных аргументами file. Если задана опция -r, файлы копируются без преобразований признака новой строки. Если задана опция -m, файлы копируются с преобразованиями признака новой строки (см. ниже раздел "Преобразования").

dosdir Выводит список файлов DOS в стандартном формате каталогов DOS.

dosformat Форматирует дискеты под версию 2.0 DOS. Накопитель может быть указан либо в соглашении о накопителях DOS, используя по умолчанию файл /etc/default/msdos, либо используя имя специального файла XENIX. Команда dosformat не может быть использована для форматирования жесткого диска. Опция -f подавляет интерактивный режим. Опция -q (выход) используется для подавления информации, обычно выводимой во время выполнения команды dosformat. Опция -q не подавляет интерактивный режим. Опция -v выводит пользователю приглашение для ввода метки тома после того, как дискета будет отформатирована. Максимальный размер метки тома составляет 11 символов.

dosls Выводит список каталогов и файлов DOS в формате XENIX (см. описание ).

dosrm Удаляет файлы с диска DOS.

dosmkdir Создает каталог на диске DOS.

dosrmdir Удаляет каталоги с диска DOS.


Аргументы file и directory для файлов и каталогов DOS имеют вид:

device:name

где device (устройство) является обозначением пути XENIX для специального файла устройства, содержащего диск DOS, а name (имя) является обозначением пути к файлу или каталогу на диске DOS. Эти две составляющие разделяются двоеточием (:). Например, аргумент:

/dev/fd0:/src/file.asm

указывает на файл DOS - file.asm в каталоге /src на диске, который описан в файле устройства /dev/fd0. Отметим, что имена файлов для обозначений путей DOS разделяются косыми чертами (но не обратными косыми чертами). Предполагается, что аргументы, заданные без обозначения device:, являются файлами XENIX.

Для удобства, файлом задаваемой по умолчанию возможной конфигурации для пользователя является файл /etc/default/msdos, и он может определять названия накопителей DOS, используемые вместо обозначений путей к специальным файлам устройств. Он может содержать следующие строки:

A=/dev/fd0 C=/dev/hd0d D=/dev/hd1d

При обращении к файлам DOS может быть использована буква накопителя "А" вместо обозначения пути специального файла устройства /dev/fd0 (см. ниже раздел "Примеры"). Буква накопителя "С" или "D" отсылает к разделу DOS на первом или, соответственно, на втором жестком диске.

Эти команды действуют на следующих разновидностях дисков:

разделы DOS на жестком диске 5 1/4 дюймовые гибкие диски в формате DOS 3 1/2 дюймовые гибкие диски в формате DOS диски с 8,9,15 или 18 секторами на одной дорожке диски с 40 дорожками на одной стороне одно- или двухсторонние диски диски в формате DOS версий 1.0, 2.0 или 3.0

Преобразования

В случае команды doscp при копировании файла XENIX выполняются определенные преобразования. Имена файлов, имеющие длину базового имени больше восьми символов, укорачиваются. Расширения имен файлов (часть имени, следующая за разделительной точкой), имеющие длину большую трех символов, укорачиваются. Например, файл с именем 123456789.12345 становится 12345678.123. Соответствующее сообщение информирует пользователя об изменении имени, и высвечивается альтернативное имя. Имена файлов, содержащие недопустимые символы DOS, очищаются от этих символов при записи в формате MS-DOS. Соответствующее сообщение информирует пользователя о том, что такие символы были удалены, и высвечивает на экран имя в том, виде, как оно записано.

Все текстовые файлы DOS используют комбинацию символов возврата каретки и перевода строки CR-LF для указания признака новой строки. XENIX использует только символ новой строки LF. Когда команды doscat и doscp передают текстовые файлы DOS в XENIX, они автоматически убирают символ CR. Когда текстовые файл передаются в DOS, эти команды вставляют символ CR перед каждым символом LF.

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

ПРИМЕРЫ



doscat /dev/fd0:/docs/memo.txt doscat /tpm/f1 /tmp/f2 /dev/fd0:/src/file.asm

dosdir /dev/fd0:/src dosdir A:/src A:/dev

doscp /tmp/myfile.txt /dev/fd0:/docs/memo.txt doscp /tmp/f1 /tmp/f2 /dev/fd0:/mydir

dosformat A: dosformat /dev/fd0

dosls /dev/fd0:/src dosls B:

dosmkdir /dev/fd0:/usr/docs

dosrm /dev/fd0:/docs/memo.txt dosrm A:/docs/memo1.txt

dosrmdir /dev/fd0:/usr/docs

ФАЙЛЫ

/etc/default/msdos Информация по умолчанию /dev/fd* Устройства гибких дисков /dev/hd* Устройства жестких дисков

СМ. ТАКЖЕ

,

ЗАМЕЧАНИЯ

Нельзя обращаться к каталогам DOS при помощи указания шаблонов. Программы, упоминаемые выше, взаимодействуют друг с другом таким образом, что никакие две программы не будут иметь доступ к одному и тому же диску DOS в одно и то же время. К данному диску DOS в данный момент времени будет обращаться только один процесс, в то время как другие процессы будут находиться в состоянии ожидания. Если состояние ожидания какого-либо процесса слишком затянулось, то этот процесс выводит сообщение об ошибке "can't seize a device" ("не могу захватить устройство") и завершается с кодом возврата равным 1.

Ниже приведены устройства жестких дисков:

/dev/hd0d /dev/rhd0d /dev/hd1d /dev/rhd1d

аналогичные устройству /dev/hd0a, в котором дисковый драйвер определяет, какой раздел является разделом DOS, и использует его в качестве hd?d. Это означает, что программному обеспечению, использующему раздел DOS, не нужно знать, какой именно раздел является разделом DOS (это определяет дисковый драйвер).

Система Разработки XENIX поддерживает создание выполняемых под управлением DOS файлов, используя команду сс(1). Обратитесь к Руководству пользователю по языку С системы XENIX (XENIX C User's Guide) и Руководству по библиотеке языка С (C Library Guide), чтобы получить более полную информацию об использовании системы XENIX для создания программ, соответствующих системам DOS.

Все утилиты DOS оставляют временные файлы в каталоге /tmp. Эти файлы автоматически удаляются при перезагрузке системы. Кроме того, они могут быть удалены вручную.









DOSCP(1)


НАЗВАНИЕ

doscp - копирование UNIX-файлов на стандартную PC-дис- кету и обратно

СИНТАКСИС

doscp

ОПИСАНИЕ

Утилита doscp имеет экранный интерфейс и использует файл /etc/termcap для позиционирования курсора и ввода клавиш. Значением переменной окружения TERM должен быть тип терминала, на котором Вы работаете и этот тип должен быть описан в файле /etc/termcap. Программа позволяет копировать файлы из UNIX-файлы на PC/MS-DOS дискеты и обратно, а также удалять файлы с дискеты. Файлы в коде ASCII могут преобразовываться в обоих направлениях. Подсказки, выдаваемые программой, настолько понятны, что не требуют дополнительного обяснения. Дискета должна иметь стандартный формат PC/XT (360K).

ФАЙЛЫ

/dev/dsk/fd512PC Имя устройства для PC-дискеты. /etc/termcap База данных терминалов.



DOWN(8)


НАЗВАНИЕ

down - выключение системы

ОПИСАНИЕ

Чтобы выключить систему нужно, чтобы все пользователи завершили работу. Затем следует с консоли войти в пользователя down. Все остальное будет сделано автоматически.

Из профайла пользователя down (/.profile) запустится утилита . Она выполнит необходимые действия по остановке системы и переведет ее в однопользовательский режим. Затем, вновь, начнет работу процедура /.profile, которая в этом случае сведется к вызову утилиты .

ФАЙЛЫ

/.profile Профайл для пользователей down и root. /etc/shutdown /etc/finito

СМ. ТАКЖЕ

, , .

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



DOWNLOAD(1M)


НАЗВАНИЕ

download - загрузка об ектного файла обычного формата в указанный файл

СИНТАКСИС

download [-t смещение] [-d смещение] [-b смещение] [-s адрес_таблицы_имен] выполняемый_файл целевой_файл

ОПИСАНИЕ

Утилита download анализирует выполняемый_файл и помешает его секции в целевой_файл. Целевой_файл может быть как обычным, так и специальным файлом (например, /dev/kmem).

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

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

-t смещение Ко всем адресам, определенным в секции команд, добавляется указанное смещение. -d смещение Ко всем адресам, определенным в секции инициализированных данных, добавляется указанное смещение. -b смещение Ко всем адресам, определенным в секции неинициализированных данных, добавляется указанное смещение. -s адрес_таблицы_имен Эта опция указывает, что по данному адресу расположена таблица имен. Описания имен из выполняемого_файла вставляются в указанную таблицу имен. Опция имеет смысл, только если предполагается использовать отладчик на уровне исходного языка. Если по адресу_таблицы_имен нет нужной информации, этот адрес рассматривается как косвенный.

ПРИМЕР

Команда

download выполняемый_файл файл_с_образом_памяти

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

ДИАГНОСТИКА

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



DPARAM(8)


НАЗВАНИЕ

dparam - выдает/меняет характеристики жесткого диска.

СИНТАКСИС

dparam [-w] dparam /dev/rhd[0|1]0 [characteristics]

ОПИСАНИЕ

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

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

При вызове без опций и характеристик диска dparam выводит текущие характеристики (на стандартное устройство вывода) заданного жесткого диска. Эти значения выводятся в порядке, соответствующем списку аргументов.

При записи характеристик заданного жесткого диска dparam меняет текущее состояние контроллера и модифицирует блок главного загрузчика. Порядок аргументов имеет значение и должен быть таким, как приводится ниже. Все характеристики должны вводиться в период записи характеристик диска, иначе возникнет ошибка. Характеристики жесткого диска ( в порядке по отношению друг к другу ) таковы:

number of cylinders общее количество цилиндров на жестком диске number of heads количество головок write cylinder зависит от аппаратной части, смотрите соответствующую документацию write precompensation cylinder зависит от аппаратной части, смотрите соответствующую документацию ecc количество битов кода коррекции ошибки при пересылках ввода/вывода, смотрите документацию по аппаратной части control крайне зависит от аппаратной части, смотрите соответствующую документацию landing zone cylinder зона парковки головок после разгрузки системы number of sectors per track количество секторов на дорожке на жестком диске

ПРИМЕРЫ

dparam -w dparam /dev/rhd10 dparam /dev/rhd00 700 4 256 180 5 0 640 17

ОПИСАНИЕ

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



DRAND48(3C)


НАЗВАНИЕ

drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - генерация равномерно распределенных псевдослучайных чисел

СИНТАКСИС

double drand48 ( )

double erand48 (xsubi) unsigned short xsubi [3];

long lrand48 ( )

long nrand48 (xsubi) unsigned short xsubi [3];

long mrand48 ( )

long jrand48 (xsubi) unsigned short xsubi [3];

void srand48 (seedval) long seedval;

unsigned short *seed48 (seed16v) unsigned short seed16v [3];

void lcong48 (param) unsigned short param [7];

ОПИСАНИЕ

Данное семейство функций порождает псевдослучайные числа с использованием широко известного линейного конгруэнтного алгоритма и 48-битной целой арифметики.

Функции drand48 и erand48 возвращают неотрицательные вещественные числа двойной точности, равномерно распределенные в интервале [0.0, 1.0).

Функции lrand48 и nrand48 возвращают неотрицательные целые числа типа long, равномерно распределенные в интервале [0, 2^31).

Функции mrand48 и jrand48 возвращают целые числа со знаком, типа long, равномерно распределенные в интервале [-2^31, 2^31).

Функции srand48, seed48 и lcong48 представляют собой инициализирующие точки входа, обращение к которым должно предшествовать вызову какой-либо из функций drand48, lrand48, mrand48. (Хотя это и не рекомендуется, в том случае, когда функции drand48, lrand48, mrand48 будут вызваны без предварительного обращения к инициализирующим точкам входа, подстановка постоянных начальных значений, принимаемых по умолчанию, будет произведена автоматически.) Функции erand48, nrand48 и jrand48 не требуют предварительного обращения к инициализирующим точкам входа.

Все программы работают, порождая последовательность 48-битных целых значений X [i] в соответствии с линейной конгруэнтной формулой

X [n+1] = (a * X [n] + c) mod m n 0

Параметр m = 2^48 и поэтому используется 48-битная целая арифметика. Если не было предварительного обращения к lcong48, для коэффициента a и аддитивной константы c будут приняты следующие значения:

a = 0x5DEECE66D = 0273673163155 c = 0xB = 013


Первым этапом вычисления возвращаемого значения для любой из функций drand48, erand48, lrand48, nrand48, mrand48 или jrand48 является генерация очередного 48 битного значения X[i]. Далее из него берутся старшие биты в количестве, определяемом типом требуемого данного, которые и преобразуются в возвращаемое значение.

Функции drand48, lrand48 и mrand48 сохраняют последнее сгенерированное 48-битное значение X[i] во внутреннем буфере - вот почему они должны быть инициализированы перед своим вызовом. Для функций же erand48, nrand48 и jrand48 вызывающая программа должна сама резервировать память под очередное значение X[i], передаваемое при вызове как аргумент. Эти функции инициализации не требуют; вызывающая программа должна просто поместить желаемое начальное значение X[i] в массив из трех 16-битных слов и передать тот как аргумент. Посредством использования различных аргументов функции erand48, nrand48 и jrand48 позволяют различным модулям большой программы генерировать несколько независимых потоков псевдослучайных чисел; другими словами, последовательность чисел в каждом потоке не зависит от того, как часто программа вызывалась для генерации чисел других потоков.

Инициализирующая функция srand48 устанавливает старшие 32 бита значения X[i] равными 32-м битам своего аргумента. Независимо от значения старших бит, младшие 16 бит X[i] устанавливаются равными 0x330E.

Инициализирующая функция seed48 устанавливает значение всех 48 бит X[i] по значению аргумента - массива из трех 16-битных слов. Предыдущее значение X[i] копируется в 48-битный внутренний буфер, используемый только функцией seed48. Возвращаемое функцией seed48 значение представляет собой указатель на этот буфер. Возвращаемый указатель в большинстве случаев игнорируется, однако он может оказаться полезным при перезапуске программы с данной точки в будущем. Для этого, используя указатель, следует извлечь и сохранить последнее значение X[i], которое затем, при перезапуске, употребить для повторной инициализации с помощью seed48.

Инициализирующая функция lcong48 дает пользователю возможность указать начальное значение X [i], значение коэффициента a и аддитивной константы c. В массиве, являющемся ее аргументом, элементы param [0-2] определяют X [i], элементы param [3-5] - коэффициент a и, наконец, param [6] - 16-битную константу c. После вызова lcong48 восстановить "стандартные" значения коэффициента a и константы c, описанные выше, можно путем вызова какой либо из функций srand48 или seed48.

ПРИМЕЧАНИЯ

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

long irand48 (m) unsigned short m;

long krand48 (xsubi, m) unsigned short xsubi [3], m;

Функции irand48 и krand48 возвращают неотрицательные целые числа типа long, равномерно распределенные в интервале [0, m-1].

СМ. ТАКЖЕ

.









DTYPE(1)


ИМЯ

dtype - Определяет тип диска.

СИНТАКСИС

dtype [-s] device ...

ОПИСАНИЕ

Команда dtype определяет тип диска, печатает соответствующую информацию на устройство стандартного вывода, если не задана опция, отменяющая выдачу сообщений (-s), и завершается с соответствующим кодом (см. ниже). Если задан более чем один аргумент device, то код завершения соответствует последнему аргументу.

Тип диска Код выхода Сообщение (необязательное) Смешан. 60 ошибка (указана) 61 пустые или нераспознанные данные Память 70 формат дампа, том n 71 формат tar[, протяжение e из n] 72 формат cpio MS-DOS 73 символьный(-с) формат cpio 80 DOS 1.x, 8сект./дорож., односторонний 81 DOS 1.x, 8сект./дорож., двухсторонний 90 DOS 2.x, 8сект./дорож., односторонний 91 DOS 2.x, 8сект./дорож., двухсторонний 92 DOS 2.x, 9сект./дорож., односторонний 93 DOS 2.x, 9сект./дорож., двухсторонний 94 DOS 2.x, жесткий диск 110 DOS 3.x, 9сект./дорож., двухсторонний XENIX 120 файловая система XENIX 2.x [нужна чистка] 130 файловая система XENIX 3.x и более поздние версии [нужна чистка]

ЗАМЕЧАНИЕ

Перестановка слов (word-swapped) отсылает к порядку байтов в длинных словах по отношению к главенствующей системе.

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

Эта утилита работает надежно только для гибких дискет.



DU(1)


НАЗВАНИЕ

du - сводка использования дискового пространства

СИНТАКСИС

du [-s] [-a] [-r] [файл ...]

ОПИСАНИЕ

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

Опции означают следующее:

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

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

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

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

СМ. ТАКЖЕ

df(1).

СЮРПРИЗЫ

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

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

Для файлов с пустотами число блоков определяется неверно.



DUMP(1)


НАЗВАНИЕ

dump - дамп указанных частей об ектных файлов

СИНТАКСИС

dump [-a] [-g] [-f] [-o] [-h] [-s] [-r] [-l] [-t] [-z имя] [-c] [-L] фа

ОПИСАНИЕ

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

-a Для каждого архива вывести архивные заголовки элементов. -g Вывести глобальные имена из таблицы имен архива. -f Вывести заголовки файлов. -o Вывести необязательные заголовки. -h Вывести заголовки секций. -s Вывести содержимое секций. -r Вывести информацию о настройке ссылок. -l Вывести информацию о номерах строк. -t Вывести элементы таблицы имен. -z имя Вывести для функции с заданным именем информацию о номерах строк. -c Вывести таблицу цепочек. -L Проинтерпретировать и вывести содержимое секций .lib.

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

-d номер Вывести секцию с данным номером или последовательность секций, начинающуюся с секции номер и кончающуюся последней секцией, или секцией с номером, заданным модификатором +d. +d номер Вывести последовательность секций, начинающуюся либо с первой секции, либо с секции, определяемой модификатором -d. -n имя Вывести информацию, относящуюся только к об екту с указанным именем. Данный модификатор применяется к опциям -h, -s, -r, -l и -t. -p Подавить выдачу заголовков. -t индекс Вывести только элемент таблицы имен с указанным индексом. При использовании данного модификатора вместе с +t специфицируется диапазон элементов таблицы имен. +t индекс Вывести элементы таблицы имен в диапазоне, кончающемся элементом с указанным индексом. Начало диапазона - либо первый элемент, либо указанный в модификаторе -t. -u Подчеркнуть для выразительности имя файла. -v Выводить информацию в символьном представлении, а не в числовом. Данный модификатор можно использовать со всеми опциями команды dump, кроме -s и -o. -z имя номер Вывести для функции с заданным именем информацию о строке с указанным номером. При использовании данного модификатора вместе с +z специфицируется диапазон строк. +z номер Вывести информацию о номерах строк в диапазоне, кончающемся строкой с заданным номером. Начало диапазона - либо первая строка функции, либо строка с номером, указанным в модификаторе -z.

Команда dump пытается отформатировать выводимую информацию осмысленным образом, выводя ее в символьном, шестнадцатеричном, восьмеричном или десятичном представлении.

СМ. ТАКЖЕ

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



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


НАЗВАНИЕ

dump - Фopмaт лeнты, зaпиcaннoй кoмaндoй dump.

ОПИСАНИЕ

Koмaнды dump иrestore иcпoльзyютcя для зaпиcи и чтeния фaйлoвoй cиcтeмы c мaгнитнoй лeнты.

Лeнты coдepжит зaпиcь зaгoлoвкa, зaпиcь битoвoй мacки, гpyппy зaпиceй, oпиcывaющиx кaтaлoги фaйлoвoй cиcтeмы, гpyппy зaпиceй, oпиcывaющиx фaйлы фaйлoвoй cиcтeмы и зaпиcь, oпиcывaющyю втopyю мacкy бит.

Зaпиcь зaгoлoвкa и пepвaя зaпиcь кaждoгo oпиcaния имeeт фopмaт, oпиcaнный cтpyктypoй, включaeмoй:

#include <dumprestor.h>

Oблacти cтpyктypы dumprestor oпиcaны нижe.

NTREC oпpeдeляeт кoличecтвo блoкoв, кaждый длинoй в 512 бaйт, в физичecкoй зaпиcи нa лeнтe. MLEN oпpeдeляeт кoличecтвo бит в cлoвe кapты бит. MSIZ oпpeдeляeт кoличecтвo cлoв кapты бит.

TS_entries иcпoльзyeтcя в пoлe c_type для oтpaжeния типa зaгoлoвкa. Tипы и иx знaчeния пpивeдeны нижe:

TS_TYPE Meткa тoмa. TS_INODE Дaлee cлeдyeт фaйл или кaтaлoг. Пoлe c_dinide являeтcя кoпиeй индecнoгo дecкpиптopa фaйлa диcкa и coдepжит биты, yкaзывaющиe тип фaйлa. TS_BITS Дaлee cлeдyeт мacкa бит.B этoй мacкe бит кaждый бит cooтвeтcтвyeт кaждoмy индeкcнoмy дecкpиптopy фaйлa кoпиpyeмыx фaйлoв. TS_ADDR Дoпoлнитeльный блoк фaйлa (TS_INODE). Cмoтpи oпиcaниe c_count нижe. TS_END Зaпиcь кoнцa нa лeнтe TS_CLRI Дaлee cлeдyeт мacкa бит. Этa мacкa бит coдepжaщaя пo oднoмy битy для вcex индeкcныx дecкpиптopoв фaйлoв, кoтopыe были пycты вo вpeмя кoпиpoвaния. MAGIC Bce блoки зaгoлoвкa имeют этo чиcлo в c_magic. CHECKSUM Koнтpoльнaя cyммa зaгoлoвкoв.

Cтpyктypa зaгoлoвкa имeeт cлeдyющиe пoля:

c_type Tип зaгoлoвкa. c_date Дaтa кoпиpoвaния. c_ddate Дaтa кoпиpoвaния фaйлoвoй cиcтeмы. c_volume Hoмep тoмa кoпии. c_tapea Teкyщий нoмep блoкa зaпиcи (длинa блoкa paвнa 512 бaйт). c_inumber Hoмep индeкcнoгo дecкpиптopa фaйлa, кoтopый кoпиpyeтcя, ecли тип зaгoлoвкa oпpeдeлeн кaк TS_INODE. c_magic Coдepжит вeличинy MAGIC, yпoминaвшyюcя вышe, yкopoчeннyю в cлyчae нeoбxoдимocти. c_checsum Coдepжит вeличинy, пoлyчeннyю в кaчecтвe кoнтpoльнoй cyммы блoкa. c_dinode Пpeдcтaвляeт coбoй кoпию индeкcнoгo дecкpиптopa фaйлa, пoявляющyюcя в фaйoлoвoй cиcтeмe. c_count Дaлee cлeдyeт cчeтчик cимвoлoв, oпиcывaющиx фaйл. Cимвoл являeтcя нyлeвым, ecли блoк, cooтвecтвyющий cимвoлy, oтcyтcтвyeт в фaйлoвoй cиcтeмe; в пpoтивнoм cлyчae cимвoл oтличeн oт нyля. Ecли блoк нe был пpeдcтaвлeн в фaйлoвoй cиcтeмe, блoк кoпиpyeтcя и в фaйлe имeeтcя paзpыв. Ecли нe cyщecтвyeт дocтaтoчнo мecтa в этoм блoкe, чтoбы oпиcaть вce блoки в фaйлe, блoки TS_ADDR бyдyт paзбpocaны пo фaйлy, и зaпиcaны пocлe пocлeднeгo yжe oпиcaннoгo блoкa. c_addr Этo мaccив cимвoлoв, кoтopыe иcпoльзyютcя кaк oпиcaнo вышe.

Kaждый тoм, иcключaя пocлeдний, зaкaнчивaeтcя мapкepoм лeнты (пoнимaeмым кaк кoнeц фaйлa). Пocлeдний тoм зaкaнчивaeтcя блoкoм TS_END и зaтeм мapкepoм лeнты.

Cтpyктypa idates oпиcывaeт тoчкy вxoдa в фaйл, гдe xpaнитcя пocлeдoвaтeльнocть кoпиpoвaния.

СМ. ТАКЖЕ

, ,



DUMPDIR(1)


ИМЯ

dumpdir - Печатает имена файлов из архива, записанного при по- мощи команды backup.

СИНТАКСИС

dumpdir [ f filename ]

ОПИСАНИЕ

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

Опция f вызывает использование аргумента filename в качестве имени устройства резервного копирования взамен назначаемого по умолчанию. Назначение устройства резервного копирования зависит от установки переменной TAPE в файле /etc/default/dumpdir. Устройство, задаваемой переменной TAPE, может быть устройством резервного копирования любого типа, поддерживаемого системой (например, накопителем на гибких дисках или накопителем на магнитных кассетных лентах).

ФАЙЛЫ

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

СМ. ТАКЖЕ

, , default(3).



DUP(2)


НАЗВАНИЕ

dup - дублирование дескриптора открытого файла

СИНТАКСИС

int dup (fildes) int fildes;

ОПИСАНИЕ

Аргумент fildes - это дескриптор файла, полученный после выполнения системных вызовов creat, open, dup, fcntl и pipe. Системный вызов dup возвращает новый дескриптор файла, имеющий следующие общие свойства с исходным дескриптором:

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

Новый дескриптор создается таким, чтобы после выполнения системных вызовов файл оставался открытым [см. ].

Возвращается наименьший из доступных дескрипторов.

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

[EBADF] Аргумент fildes не является корректным дескриптором открытого файла. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [EMFILE] Превышается максимально допустимое количество файлов, открытых одновременно в одном процессе. [ENOLINK] Аргумент fildes указывает на удаленный компьютер, связи с которым в данный момент нет.

СМ. ТАКЖЕ

, , , , , , .

ДИАГНОСТИКА

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



DUP2(3C)


НАЗВАНИЕ

dup2 - дублирование дескриптора открытого файла

СИНТАКСИС

int dup2 (fildes, fildes2) int fildes, fildes2;

ОПИСАНИЕ

Аргумент fildes - это дескриптор открытого файла, а аргумент fildes2 - неотрицательное целое число, меньшее константы NOFILES. В результате выполнения функции dup2 fildes2 станет дескриптором того же файла, что и fildes. Если fildes2 уже был дескриптором открытого файла, он предварительно закрывается.

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

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

СМ. ТАКЖЕ

, , , , , , .

ДИАГНОСТИКА

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



UNIX2DOS(1)


ИМЯ

dos2unix - преобразование форматов файлов

СИНТАКСИС

dos2unix [-?hz] [infile [outfile ]]

ОПИСАНИЕ

Команда dos2unix служит для преобразования форматов текстовых файлов MSDOS к UNIX формату. Известно, что форматы текстовых файлов в DOS и в UNIX немного отличаются: в DOS все строки заканчиваются парой символов CR и LF (возврат каретки и перевод строки), а UNIX использует только символ LF (перевод строки), справедливо полагая, что второй символ совершенно излишен. В командной строке аргумент infile служит для определения DOS - файла, а аргумент outfile используется для задания имени ничем не отличающегося по содержанию текстового файла, но уже в UNIX формате.

-z служит для записи символа конца файла EOF. -?, -h используются для выдачи на печать списка доступных опций.

СМ. ТАКЖЕ

unix2dos