Русская Википедия:/dev/full

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Файл устройства Шаблон:Специальные файлы устройств /dev/full — специальный файл в UNIX-подобных системах, представляющий собой «полное устройство»[1]. Запись в него ненулевого количества байт происходит с ошибкой «недостаточно места» (ошибка ENOSPC)[1], независимо от объёма «записанной» информации. Чтение из /dev/full эквивалентно считыванию запрошенного количества нулевых байтов, как для /dev/zero[1].

Запись в /dev/full завершается успешно только для нулевого количества байт. Это устройство используется для добавления проверок того, что программа ничего не выводит. Если программа сама не обработает ошибку вывода, то она завершится с ошибкой при первом нарушении требования ничего не выводить.

Создание

Устройство /dev/full считается символьным. В Linux оно создаётся с помощью утилиты mknod следующим образом[1]:

mknod FILE c 1 7

Здесь FILE — имя для нового устройства. На этапе установки системы оно создаётся таким образом со стандартным именем /dev/full.

Примеры использования

Чаще всего /dev/full используется для дополнительного уровня проверок (избыточного, но иногда полезного)Шаблон:Нет АИ. Например, для создания архива системного протокола syslog можно выполнить команду

bzip2 --compress --stdout --best -- '/var/log/syslog' > /dev/full

В этой команде присутствует типичная ошибка — неверно указан параметр, но дополнительная проверка позволяет избежать двух проблем: во-первых, вывода на терминал бинарного потока, который может что-нибудь сломать даже самостоятельно, и, во-вторых, потери файла архива, как было бы при использовании /dev/null или /dev/zero на месте /dev/full, но с /dev/full архиватор выдаст понятную ошибку.

См. также

Примечания

Шаблон:Примечания

Шаблон:FHS

Шаблон:Нет ссылок Шаблон:Unix-stub