Специальные файлы
Специальные файлы, называемые иногда виртуальными, не связаны со статичными наборами данных, хранящихся на дисках, а являются удобным унифицированным представлением устройств ввода-вывода.
Понятие специального файла появилось в операционной системе UNIX. Специальный файл всегда связан с некоторым устройством ввода-вывода и представляет его для остальной части операционной системы и прикладных процессов в виде неструктурированного набора байт. Со специальным файлом можно работать так же, как и с обычным, то есть открывать, считывать из него определенное количество байт или же записывать в него определенное количество байт, а после завершения операции закрывать. Для этого используются те же системные вызовы, что и для работы с обычными файлами: open, create, read, write и с1ose. Таким образом, в системе UNIX для того чтобы вывести на алфавитно-цифровой терминал, с которым связан специальный файл /dev/tty3, сообщение "Не11о, friends!", достаточно открыть этот файл с помощью системного вызова ореn:
fd = open(“/dev/tty3”, 2)
Затем можно вывести сообщение с помощью системного вызова write.
write ( fd, "Не11о, friends!”, 15 )
Для устройств прямого доступа имеет смысл также указатель текущего положения в файле, которым можно управлять с помощью системного вызова 1seek. Очевидно, что представление устройства в виде файла и использование для управления устройством файловых системных вызовов во многих случаях позволяет выполнять только достаточно простые операции.
Традиционно специальные файлы помещаются в каталог /dev, хотя ничто не мешает создать их в любом каталоге файловой системы. При появлении нового устройства и соответственно нового драйвера администратор системы может создать новую запись с помощью команды mknod. Например, следующая команда создает блок-ориентированный специальный файл:
mknod /dev/dsk/sc4d2s3 b 32 33
ФАЙЛОВАЯ СИСТЕМА