ИМЯ
assign, deassign - Назначает и отменяет устройства.
СИНТАКСИС
assign [ -u ][ -v ][ -d ][ device ]... deassign [ -u ][ -v ][ device ]...
ОПИСАНИЕ
Команда assign пытается назначить устройство текущему пользователю. Аргумент device должен быть назначаемым устройством которое не назначено в текущий момент.Команда assign без аргумента печатает список назначаемых устройств вместе с именем пользователя, которому они назначаются.
Команда deassign используется для "отмены" устройств. Команда deassign без аргументов отменит все устройства, назначенные пользователю. Если заданы аргументы то делается попытка отменить каждое устройство device, заданное как аргумент.
С этими командами вы можете единолично использовать устройство такое, как запоминающее устройство на магнитной ленте или накопитель на гибком магнитном диске. Это удерживает других пользователей от использования устройства. Команды дают такой же эффект, что и команды и , хотя они действуют только на устройства в /dev. Другие аспекты обсуждаются в дальнейшем.
ОПЦИИ
Команда 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, 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, 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, а во внешнюю переменную
ИМЯ
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 - выдача и установка даты и времени
СИНТАКСИС
date [ммддччмм[гг]] [+формат]
ОПИСАНИЕ
Если аргументы команды date не указаны, или аргумент начинается со знака +, выводятся текущие дата и время; в противном случае выполняется установка даты и времени. Первые мм - это номер месяца; дд - номер дня в месяце; чч - номер часа (по 24-часовой шкале); вторые мм - номер минуты; гг - две последние цифры номера года, их указывать не обязательно. Например, команда
date 10080045
устанавливает дату на 8 октября, 0 часов 45 минут. Если год не указан, подразумевается текущий год. Система UNIX использует всемирное время. Команда date принимает во внимание часовой пояс и поправку на летнее время (в стандартах США) и выполняет соответствующие преобразования. Менять дату может только суперпользователь.
Если аргумент начинается со знака +, форматом вывода даты и времени управляет пользователь. Все поля вывода имеют фиксированный размер (дополняются, если нужно, нулями). Каждый описатель поля начинается с % и замещается при выводе соответствующим значением. Сам символ % кодируется с помощью пары %%. Все остальные символы копируются на вывод без изменений. Признаком конца формата служит перевод строки.
Описатели полей:
ПРИМЕР
Команда
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 команды .
ИМЯ
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НИЯ
НАЗВАНИЕ
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 - настольный калькулятор
СИНТАКСИС
dc [файл]
ОПИСАНИЕ
Dc - пакет для арифметических вычислений с произвольной точностью. Обычно он оперирует в десятичной системе счисления с целыми числами, однако можно задать системы счисления для ввода и вывода, а также точность вычислений. Общая структура dc - стековый калькулятор, использующий обратную польскую запись. [См. также - препроцессор для dc, поддерживающий инфиксную нотацию и C-подобный синтаксис.] Если аргумент указан, то сначала ввод производится из файла, а потом со стандартного ввода.
Dc распознает следующие конструкции:
ПРИМЕР
Вывести факториалы первых 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 - копирование файловых систем для оптимизации времени доступа
СИНТАКСИС
/etc/dcopy [-s размещ_блоков] [-a [срок]] [-d] [-v] [-f разм_файл_сист[:разм_списк_опис]] исходная_файловая_система целевая_файловая_система
ОПИСАНИЕ
Команда dcopy копирует исходную_файловую_систему в целевую_файловую_систему. Исходная_файловая_система представляется содержащим ее специальным файлом. Целевая_файловая_система - это специальный файл для вновь создаваемой файловой системы, куда будет помещен результат реорганизации. Чтобы процесс оптимизации был более эффективным, аргумент исходная_файловая_система должен быть бесструктурным устройством, а аргумент целевая_файловая_система - блочным. Обе файловые системы должны быть размонтированными (в случае корневой файловой системы копирование должно производиться на новый том).
В отсутствие каких-либо опций команда dcopy копирует файлы из исходной файловой системы, сжимая каталоги путем удаления из них пустых элементов и помещая логически последовательные блоки файла в физически оптимально отстоящие друг от друга блоки на дорожках диска. Возможные опции таковы:
-s размещ_блоков Информация об устройстве для оптимального размещения блоков файла. Спецификация размещ_блоков имеет тот же формат, что и спецификация опции -s команды .
-a [срок] Файлы, к которым в течение указанного срока не было доступа, нужно поместить вслед за свободными блоками целевой файловой системы. Срок задается в днях, подразумеваемое значение равно 7. При отсутствии опции -a старые файлы обрабатываются наравне с остальными.
-d Оставить порядок элементов каталогов неизменным (по умолчанию подкаталоги перемещаются в начало каталогов).
-v В настоящее время информирует о том, сколько файлов обработано, а также о том, сколько свободных блоков содержат исходная и целевая файловые системы.
-f разм_файл_сист[:разм_списк_опис] Определяет размеры целевой файловой системы и ее списка описателей (в блоках). Если вся опция (или только спецификация :разм_списк_опис) не задана, то соответствующие значения заимствуются у исходной файловой системы.
Команда dcopy перехватывает сигналы прерывания и выхода (SIGINT и SIGQUIT), выдает сообщения о ходе своего выполнения. Для прекращения выполнения dcopy следует послать сигнал выхода и следом за ним еще один сигнал прерывания или выхода.
СМ. ТАКЖЕ
, .
НАЗВАНИЕ
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 - к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, 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 - внесение изменений (новой версии) в 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-файла до и после внесения изменений.
НАЗВАНИЕ
devnm - имя устройства
СИНТАКСИС
/etc/devnm [полное_имя ...]
ОПИСАНИЕ
Команда devnm идентифицирует специальный файл, ассоциированный с файловой системой, содержащей файл с заданным полным_именем.
Эта команда чаще всего используется процедурой /etc/brc [см. ] для создания элемента таблицы смонтированных файловых систем, описывающего корневую файловую систему.
ПРИМЕР
Команда
/etc/devnm /usr
выдаст в качестве результата
/dev/dsk/hd0s0 /usr
если каталог /usr расположен на /dev/dsk/hd0s0.
ФАЙЛЫ
/dev/dsk/* /etc/mnttab
СМ. ТАКЖЕ
.
НАЗВАНИЕ
df - сведения о числе свободных блоков и описателей файлов
СИНТАКСИС
df [-t] [-f] [файловая_система ...] [каталог ...]
ОПИСАНИЕ
Команда df выдает число свободных килобайтных блоков и незанятых описателей файлов в смонтированных файловых системах, используя значения соответствующих счетчиков в суперблоках.
Файловая_система может быть задана либо именем устройства (например, /dev/dsk/hd0s0), либо именем каталога, на который она смонтирована (например, /mnt).
Каталог задается полным именем. Будет выдана информация об устройстве, содержащем этот каталог.
Если аргументы не указаны, будет выдана информация о свободном пространстве для всех смонтированных файловых систем.
Команда df использует следующие опции:
ПРИМЕЧАНИЯ
Если в команде задан список из нескольких файловых систем и/или каталогов, то при повторной выдаче информации о некоторой файловой системе соответствующая строка будет помечена звездочкой.
ФАЙЛЫ
/dev/dsk/* /etc/mnttab
СМ. ТАКЖЕ
du(1). fs(4), в Справочнике программиста. mount(1M) в Справочнике администратора.
НАЗВАНИЕ
dfile - файл с информацией об устройствах
ОПИСАНИЕ
Файл устройств, dfile, содержит информацию об устройствах, входящих в систему. Файл делится на три части. Первая содержит спецификации физических устройств. Вторая - системно-зависимую информацию. Третья часть содержит информацию, относящуюся к конкретному микропроцессору. Первые две части являются обязательными, третья - нет. Строка со звездочкой в начале или звездочкой, перед которой идут табуляции или пробелы, является комментарием.
Ниже описываются три части файла устройств. В качестве примера используется дисковый контроллер.
Первая часть файла устройств
Каждая строка состоит из четырех или пяти полей, разделенных табуляциями и/или пробелами и имеет следующий формат:
имя_устройства вектор адрес уровень число
Имя_устройства задается так же, как в файле , где оно располагается в поле 1 строк из первой части и состоит не более чем из 8 символов [см. ].
Вектор задает шестнадцатеричный адрес вектора прерываний; это значение используется также в массиве векторов прерываний, который создается при указании буквы v в поле 4 файла .
Адрес является шестнадцатеричным адресом устройства; массив адресов устройств создается автоматически (например, hd_addr [ ]).
Уровень - это уровень запроса шины или уровень прерываний (от 1 до 7). Он используется в массиве уровней прерываний (например, hd_ilev [ ]), который создается при указании буквы l в поле 4 строк первой части файла .
Пятое поле, число - есть (десятичное) число устройств, ассоциированных с соответствующим контроллером. Поле число - необязательное и, если оно опущено, используется значение по умолчанию, которое является максимальным для данного контроллера. Данное поле означает то же, что и поле 9 строк первой части файла , но значение из файла устройств перекрывает значение из файла .
Имеется также несколько драйверов, которые могут поддерживаться системой, но которые являются драйверами псевдоустройств, то есть нет реального оборудования, ассоциированного с ними. В описании псевдоустройств значения полей вектор, адрес и уровень_запроса равны нулю.
Вторая часть файла устройств
НАЗВАНИЕ
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.
ФАЙЛЫ
НАЗВАНИЕ
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 возвращает код завершения попытки установления связи:
<
НАЗВАНИЕ
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, отмеченные знаком .
Допустимые опции:
В сочетании с опцией -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 - выявление различий между тремя файлами
СИНТАКСИС
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. Если два файла совпадают, то вид изменяемых строк приводится только для файла с большим номером.
Допустимые опции:
Следующая командная строка shell'а может быть использована для применения полученного посредством diff3 набора редактирующих действий (помещенного в файл script) к файлу f1:
(cat script; echo '1,$p') | ed -s f1
ФАЙЛЫ
/tmp/d3* /usr/lib/diff3prog
СМ. ТАКЖЕ
diff(1).
СЮРПРИЗЫ
Строки текста, состоящие из единственной точки, сводят на нет эффект от опции -e.
Diff3 не может обрабатывать файлы длиной более 64 Кб.
НАЗВАНИЕ
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 - формат каталогов
СИНТАКСИС
#include <sys/dir.h>
ОПИСАНИЕ
Каталог аналогичен обычному файлу, только запись в каталог для пользователей запрещена. На то, что файл является каталогом, указывает бит в слове di_mode описателя данного файла [см. ]. Структура элемента каталога, согласно определению во включаемом файле, такова:
#ifndef DIRSIZ #define DIRSIZ 14 #endif
struct direct { ushort d_ino; char d_name [DIRSIZ]; };
По соглашению первые два элемента в любом каталоге предназначены для "." и "..". Первый - это элемент для самого каталога; второй - для надкаталога. Для корневого каталога ".." имеет другой смысл: поскольку у него нет надкаталога, ".." обозначает то же , что и ".".
СМ. ТАКЖЕ
.
НАЗВАНИЕ
dircmp - сравнение каталогов
СИНТАКСИС
dircmp [-d] [-s] [-w ширина] кат1 кат2
ОПИСАНИЕ
Команда dircmp сверяет каталоги кат1 и кат2 и выдает в табличном виде различную информацию о содержании этих каталогов. При любом сочетании опций создается листинг имен файлов, принадлежащих только одному из каталогов. Если не указано никаких опций, генерируется информация о том, имеют ли файлы с одинаковыми именами одинаковое содержимое.
СМ. ТАКЖЕ
cmp(1), .
НАЗВАНИЕ
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:
НАЗВАНИЕ
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 - получение имени каталога по составному имени файла
СИНТАКСИС
dirname цепочка_символов
ОПИСАНИЕ
Команда dirname выдает на стандартный вывод составное имя, обозначенное цепочкой_символов, за исключением последнего уровня. Уровни разделяются символом /. Обычно используется между символами подстановки (``) внутри shell-процедур.
ПРИМЕР
После выполнения оператора
NAME=`dirname /usr/src/uts/io/pit.c`
переменная NAME получит значение /usr/src/uts/io.
СМ. ТАКЖЕ
basename(1), .
НАЗВАНИЕ
dis - дизассемблер об ектного кода
СИНТАКСИС
dis [-o] [-V] [-L] [-s] [-d секция] [-da секция] [-F функция] [-t секция] [-l цепочка] файл ...
ОПИСАНИЕ
Команда dis выдает на стандартный вывод листинг файлов на языке ассемблера. Файлы могут быть как об ектными, так и архивами (библиотеками) об ектных файлов. Листинг содержит команды ассемблера и их восьмеричное или шестнадцатеричное представление.
Дизассемблер интерпретирует следующие опции, которые можно указывать в произвольном порядке:
НАЗВАНИЕ
disable - блокировка принтеров
СИНТАКСИС
disable [-c] [-r [причина]] принтер ...
ОПИСАНИЕ
Команда disable блокирует принтеры, запрещая печать запросов по команде . По умолчанию, любые запросы, которые в текущий момент обрабатываются на указанных принтерах, допечатываются до конца либо на том же самом принтере, либо на другом принтере того же класса. Для выяснения статуса принтеров используется команда lpstat(1). Опции команды disable:
ФАЙЛЫ
/usr/spool/lp/*
СМ. ТАКЖЕ
enable(1), , .
ИМЯ
disable - Отключает терминалы и принтеры.
СИНТАКСИС
disable tty ... disable [-c][-r[reason]]printers
ОПИСАНИЕ
Что касается терминалов, эта программа манипулирует файлом /etc/ttys и выдает сигнал команде init на запрещение вхождения в систему с некоторого терминала. Что касается принтеров, команда disable останавливает требования на печать, отправленные к заданному параметром printers принтеру. Могут быть использованы следующие опции:
ПРИМЕРЫ
В этом примере принтер с именем linepr блокируется из-за сбоя бумаги ("paper jam"):
disable -r"paper jam" linepr
ФАЙЛЫ
/dev/tty* /etc/ttys /usr/spool/lp/*
СМ. ТАКЖЕ
login(5), , ttys(3), getty(5), init(5), , , , .
ИМЯ
diskcp, diskcmp - Копирует, сравнивает гибкие диски.
СИНТАКСИС
diskcp [-f][-d][-s][-48ds9][-96ds9][-96ds15][-135ds9] [-135ds18] diskcmp [-d][-s][-48ds9][-96ds9][-96ds15][-135ds9][-135ds18]
ОПИСАНИЕ
Команда diskcp используется для формирования образа (точной копии) одного гибкого диска (источника) на другом (целевом) гибком диске. На машинах с одним накопителем для гибких магнитных дисков команда diskcp переносит образ на жесткий диск на то время, пока не будет вставлен в накопитель пустой "целевой" гибкий диск. На машинах с двумя накопителями для гибких магнитных дисков команда diskcp сразу же помещает образ гибкого диска - источника непосредственно на целевой гибкий диск.
Опциями являются:
При использовании опций -96ds9 и -96ds15 для команды diskcp в случае, если первый целевой диск не отформатирован, программа отметит это, произведет форматирование этого диска и выполнит копирование. Если требуется еще одна копия и вставлен еще один неотформатированный целевой диск, то команда diskcp завершится с сообщением "System Error" (Системная ошибка). Для того, чтобы сделать другую копию, надо выйти из программы, отформатировать гибкий диск и повторно вызвать команду diskcp.
Команда diskcmp функционирует аналогично команде diskcp. Она, с использованием утилиты cmp, сравнивает содержимое первого гибкого диска с содержимым второго гибкого диска.
ПРИМЕРЫ
НАЗВАНИЕ
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 - утилита разбиения диска
СИНТАКСИС
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.
НАЗВАНИЕ
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 - получить сведения о команде или процедуре
СИНТАКСИС
doc [-l] имя_интересующей_вас_команды_или_процедуры
ОПИСАНИЕ
Как правило, при запуске команды без аргументов она выдает формат своего вызова. Но для большинства команд достаточно полную информацию вы можете получить по команде doc. Doc выводит статьи из директории /usr/docs на терминал пользователя.
При указании ключа -l статья выводится не на терминал, а на принтер программой .
Команда doc реализована в виде командного файла.
ПРИМЕРЫ
doc cc вывод информации о компиляторе с языка Си doc -l log abs вывод информации о математических функ- циях на принтер
ФАЙЛЫ
/usr/docs/*
ИМЯ
domainname - устанавливает или показывает имя текущего домена YP/NIS
СИНТАКСИС
domainname [ypdomain]
ОПИСАНИЕ
domainname показывает имя текущего домена YP/NIS. Суперпользователь может установить имя домена, указав его в качестве аргумента; обычно это находится в скрипте инициализации сети /etc/netstart и запускается каждый раз при запуске системы.
СМ. ТАКЖЕ
ИСТОРИЯ
Команда domainname появилась в FreeBSD 1.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.
НАЗВАНИЕ
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 - выключение системы
ОПИСАНИЕ
Чтобы выключить систему нужно, чтобы все пользователи завершили работу. Затем следует с консоли войти в пользователя down. Все остальное будет сделано автоматически.
Из профайла пользователя down (/.profile) запустится утилита . Она выполнит необходимые действия по остановке системы и переведет ее в однопользовательский режим. Затем, вновь, начнет работу процедура /.profile, которая в этом случае сведется к вызову утилиты .
ФАЙЛЫ
/.profile Профайл для пользователей down и root. /etc/shutdown /etc/finito
СМ. ТАКЖЕ
, , .
, в Справочнике программиста.
НАЗВАНИЕ
download - загрузка об ектного файла обычного формата в указанный файл
СИНТАКСИС
download [-t смещение] [-d смещение] [-b смещение] [-s адрес_таблицы_имен] выполняемый_файл целевой_файл
ОПИСАНИЕ
Утилита download анализирует выполняемый_файл и помешает его секции в целевой_файл. Целевой_файл может быть как обычным, так и специальным файлом (например, /dev/kmem).
Секции, которые имеют флаг незагружаемости, пропускаются. Секции неинициализированных данных заполняются нулями. Все остальные секции помещаются в целевой_файл.
Можно указывать следующие опции:
-t смещение Ко всем адресам, определенным в секции команд, добавляется указанное смещение. -d смещение Ко всем адресам, определенным в секции инициализированных данных, добавляется указанное смещение. -b смещение Ко всем адресам, определенным в секции неинициализированных данных, добавляется указанное смещение. -s адрес_таблицы_имен Эта опция указывает, что по данному адресу расположена таблица имен. Описания имен из выполняемого_файла вставляются в указанную таблицу имен. Опция имеет смысл, только если предполагается использовать отладчик на уровне исходного языка. Если по адресу_таблицы_имен нет нужной информации, этот адрес рассматривается как косвенный.
ПРИМЕР
Команда
download выполняемый_файл файл_с_образом_памяти
создаст файл_с_образом_памяти выполняемого_файла без заголовка файла и заголовков секций. Все секции будут размещены естественным образом.
ДИАГНОСТИКА
Диагностические сообщения утилиты download не нуждаются в пояснениях.
НАЗВАНИЕ
dparam - выдает/меняет характеристики жесткого диска.
СИНТАКСИС
dparam [-w] dparam /dev/rhd[0|1]0 [characteristics]
ОПИСАНИЕ
Команда dparam выдает или меняет текущие характеристики жесткого диска. Эти изменения немедленно вступают в действие, а также записываются в блок главного загрузчика для последующих загрузок. Если используется нестандартный жесткий диск, то эта утилита должна быть вызвана перед тем, как обращаться к дисководу.
При вызове без опций и характеристик диска 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, 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
ИМЯ
dtype - Определяет тип диска.
СИНТАКСИС
dtype [-s] device ...
ОПИСАНИЕ
Команда dtype определяет тип диска, печатает соответствующую информацию на устройство стандартного вывода, если не задана опция, отменяющая выдачу сообщений (-s), и завершается с соответствующим кодом (см. ниже). Если задан более чем один аргумент device, то код завершения соответствует последнему аргументу.
ЗАМЕЧАНИЕ
Перестановка слов (word-swapped) отсылает к порядку байтов в длинных словах по отношению к главенствующей системе.
Файловые системы XENIX, а также форматы дампа и двоичные форматы cpio могут быть не распознаны, если они были созданы в другой системе. Это происходит из-за таких системным различий, как порядок следования байтов и слов и выравнивание записей.
Эта утилита работает надежно только для гибких дискет.
НАЗВАНИЕ
du - сводка использования дискового пространства
СИНТАКСИС
du [-s] [-a] [-r] [файл ...]
ОПИСАНИЕ
Команда du выдает количество килобайтных блоков, содержащихся во всех заданных файлах, среди которых могут быть каталоги. Обход каталогов выполняется, начиная с указанных, рекурсивно на любую глубину. При подсчете учитываются косвенные блоки файлов. Если файлы не заданы, работа идет с текущим каталогом.
Опции означают следующее:
Если ни одна из этих опций не задана, выходные строки генерируются только для каталогов, встретившихся при обходе.
Файл, на который имеется две и более ссылки, учитывается только один раз.
СМ. ТАКЖЕ
df(1).
СЮРПРИЗЫ
Если не используется опция -a или -s, сведения об указанных в командной строке файлах, не являющихся каталогами, не выдаются.
Если между каталогами, расположенными на различных ветвях файловой системы, имеются ссылки, du будет учитывать такие файлы более одного раза.
Для файлов с пустотами число блоков определяется неверно.
НАЗВАНИЕ
dump - дамп указанных частей об ектных файлов
СИНТАКСИС
dump [-a] [-g] [-f] [-o] [-h] [-s] [-r] [-l] [-t] [-z имя] [-c] [-L] фа
ОПИСАНИЕ
Команда dump выдает на стандартный вывод указанные части файлов, заданных в командной строке. Файлы могут быть как об ектными, так и архивами (библиотеками) объектных файлов. Каждый файл обрабатывается в соответствии со следующими опциями:
Вместе с перечисленными опциями можно использовать следующие модификаторы:
Команда dump пытается отформатировать выводимую информацию осмысленным образом, выводя ее в символьном, шестнадцатеричном, восьмеричном или десятичном представлении.
СМ. ТАКЖЕ
a.out(4), в Справочнике программиста.
НАЗВАНИЕ
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 - Печатает имена файлов из архива, записанного при по- мощи команды backup.
СИНТАКСИС
dumpdir [ f filename ]
ОПИСАНИЕ
Команда dumpdir используется для вывода списка имен и номеров индексных дескрипторов для всех файлов и каталогов из архива, записанного при помощи команды backup. Эта команда наиболее удобна для определения нахождения отдельного файла в наборе архивов, записанных при помощи команды backup.
Опция f вызывает использование аргумента filename в качестве имени устройства резервного копирования взамен назначаемого по умолчанию. Назначение устройства резервного копирования зависит от установки переменной TAPE в файле /etc/default/dumpdir. Устройство, задаваемой переменной TAPE, может быть устройством резервного копирования любого типа, поддерживаемого системой (например, накопителем на гибких дисках или накопителем на магнитных кассетных лентах).
ФАЙЛЫ
rst* Временные файлы.
СМ. ТАКЖЕ
, , default(3).
НАЗВАНИЕ
dup - дублирование дескриптора открытого файла
СИНТАКСИС
int dup (fildes) int fildes;
ОПИСАНИЕ
Аргумент fildes - это дескриптор файла, полученный после выполнения системных вызовов creat, open, dup, fcntl и pipe. Системный вызов dup возвращает новый дескриптор файла, имеющий следующие общие свойства с исходным дескриптором:
Тот же открытый файл (или канал). Тот же указатель текущей позиции в файле (то есть оба дескриптора разделяют один и тот же указатель). Тот же режим доступа (чтение, запись или чтение/запись).
Новый дескриптор создается таким, чтобы после выполнения системных вызовов файл оставался открытым [см. ].
Возвращается наименьший из доступных дескрипторов.
Системный вызов dup завершается неудачей, если выполнено хотя бы одно из следующих условий:
[EBADF] Аргумент fildes не является корректным дескриптором открытого файла. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [EMFILE] Превышается максимально допустимое количество файлов, открытых одновременно в одном процессе. [ENOLINK] Аргумент fildes указывает на удаленный компьютер, связи с которым в данный момент нет.
СМ. ТАКЖЕ
, , , , , , .
ДИАГНОСТИКА
При успешном завершении результат равен неотрицательному целому числу - дескриптору файла; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.
НАЗВАНИЕ
dup2 - дублирование дескриптора открытого файла
СИНТАКСИС
int dup2 (fildes, fildes2) int fildes, fildes2;
ОПИСАНИЕ
Аргумент fildes - это дескриптор открытого файла, а аргумент fildes2 - неотрицательное целое число, меньшее константы NOFILES. В результате выполнения функции dup2 fildes2 станет дескриптором того же файла, что и fildes. Если fildes2 уже был дескриптором открытого файла, он предварительно закрывается.
Функция dup2 завершается неудачей, если выполнено хотя бы одно из следующих условий:
СМ. ТАКЖЕ
, , , , , , .
ДИАГНОСТИКА
При успешном завершении результат равен неотрицательному целому числу - дескриптору файла; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки
ИМЯ
dos2unix - преобразование форматов файлов
СИНТАКСИС
dos2unix [-?hz] [infile [outfile ]]
ОПИСАНИЕ
Команда dos2unix служит для преобразования форматов текстовых файлов MSDOS к UNIX формату. Известно, что форматы текстовых файлов в DOS и в UNIX немного отличаются: в DOS все строки заканчиваются парой символов CR и LF (возврат каретки и перевод строки), а UNIX использует только символ LF (перевод строки), справедливо полагая, что второй символ совершенно излишен. В командной строке аргумент infile служит для определения DOS - файла, а аргумент outfile используется для задания имени ничем не отличающегося по содержанию текстового файла, но уже в UNIX формате.
СМ. ТАКЖЕ
unix2dos