/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
используется для дополнительного уровня проверок (избыточного, но иногда полезного)
[
источник не указан 1206 дней
]
. Например, для создания архива системного протокола
syslog
можно выполнить команду
bzip2 --compress --stdout --best -- '/var/log/syslog' > /dev/full
В этой команде присутствует типичная ошибка ? неверно указан параметр, но дополнительная проверка позволяет избежать двух проблем: во-первых, вывода на терминал бинарного потока, который может что-нибудь сломать даже самостоятельно, и, во-вторых, потери файла архива, как было бы при использовании
/dev/null
или
/dev/zero
на месте
/dev/full
, но с
/dev/full
архиватор
выдаст понятную ошибку.