5.8 СОЗДАНИЕ СПЕЦИАЛЬНЫХ ФАЙЛОВ
5.8 СОЗДАНИЕ СПЕЦИАЛЬНЫХ ФАЙЛОВ
Системная функция mknod создает в системе специальные файлы, в число которых включаются поименованные каналы, файлы устройств и каталоги. Она похожа на функцию creat в том, что ядро выделяет для файла индекс. Синтаксис вызова системной функции mknod:
mknod(pathname, type and permissions, dev)
где pathname — имя создаваемой вершины в иерархической структуре файловой системы, type and permissions — тип вершины (например, каталог) и права доступа к создаваемому файлу, а dev указывает старший и младший номера устройства для блочных и символьных специальных файлов (глава 10). На Рисунке 5.13 приведен алгоритм, реализуемый функцией mknod при создании новой вершины.
алгоритм создания новой вершины
входная информация:
вершина (имя файла)
тип файла
права доступа
старший, младший номера устройства (для блочных и символьных специальных файлов)
выходная информация: отсутствует
{
if (новая вершина не является поименованным каналом и пользователь не является суперпользователем)
return (ошибку);
получить индекс вершины, являющейся родительской для новой вершины (алгоритм namei);
if (новая вершина уже существует) {
освободить родительский индекс (алгоритм iput);
return (ошибку);
}
назначить для новой вершины свободный индекс из файловой системы (алгоритм ialloc);
создать новую запись в родительском каталоге;
включить имя новой вершины и номер вновь назначенного индекса;
освободить индекс родительского каталога (алгоритм iput);
if (новая вершина является блочным или символьным специальным файлом)
записать старший и младший номера в структуру индекса;
освободить индекс новой вершины (алгоритм iput);
}
Рисунок 5.13. Алгоритм создания новой вершины
Ядро просматривает файловую систему в поисках имени файла, который оно собирается создать. Если файл еще пока не существует, ядро назначает ему новый индекс на диске и записывает имя нового файла и номер индекса в родительский каталог. Оно устанавливает значение поля типа файла в индексе, указывая, что файл является каналом, каталогом или специальным файлом. Наконец, если файл является специальным файлом устройства блочного или символьного типа, ядро записывает в индекс старший и младший номера устройства. Если функция mknod создает каталог, он будет существовать по завершении выполнения функции, но его содержимое будет иметь неверный формат (в каталоге будут отсутствовать записи с именами «.» и «..»). В упражнении 5.33 рассматриваются шаги, необходимые для преобразования содержимого каталога в правильный формат.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
4.6. Создание файлов
4.6. Создание файлов Как было описано ранее, open(), очевидно, открывает лишь существующие файлы. Данный раздел описывает, как создавать новые файлы. Есть две возможности: creat() и open() с дополнительными файлами. Первоначально creat() был единственным способом создания файла, но
22.3.5. Создание временных файлов
22.3.5. Создание временных файлов Довольно часто в программах применяются временные файлы. Система Linux даже предусматривает для этой цели особые каталоги (/tmp и /var/tmp). К сожалению, использование временных файлов в безопасном режиме — дело очень ненадежное. Лучшим решением
Мнемоника названий специальных файлов устройств в файловой системе UNIX
Мнемоника названий специальных файлов устройств в файловой системе UNIX Названия специальных файлов устройств в большой степени зависят от конкретной версии UNIX. Тем не менее в этих названиях присутствует общая логика, позволяющая даже в незнакомой системе определить,
Создание файлов, папок и ярлыков
Создание файлов, папок и ярлыков Новый документ можно создать не только находясь в соответствующей программе, но и с помощью контекстного меню области просмотра окна Проводника или Рабочего стола. Как это делается, вы можете увидеть в видеоролике «Урок 3.6. Создание
Создание файлов и каталогов
Создание файлов и каталогов В следующих мини-очерках будут рассмотрены основные команды, предназначенные для файловых операций, вместе с их наиболее используемыми опциями. Чтобы не повторяться, напомню, что почти все описанные ниже команды имеют три стандартные опции
Создание файлов passwd и group
Создание файлов passwd и group Для возможности входа в систему под учетной записью root и для распознавания оболочкой имени «root», необходимо создать соответствующие записи в файлах /etc/passwd и /etc/group.Для создания файла /etc/passwd, выполните:echo «root:x:0:0:root:/root:/bin/bash» > /etc/passwdПароль для root (
Создание файлов
Создание файлов Например, для создания файла можно воспользоваться командой rundll32.exe admparse.dll, CheckDuplicateKeysA «путь и имя файла с расширением». Она имеет один большой недостаток — после запуска вызывает ошибку. Тем не менее со своей работой она справляется — после ее выполнения
Создание файлов, папок и ярлыков
Создание файлов, папок и ярлыков Когда дело дойдет до работы в прикладных программах, вы узнаете, что создавать новые документы можно прямо в них. Даже больше – это самый правильный способ. Однако вы можете создать новый документ и прямо в Проводнике Vista. Иногда это даже
Создание PDF-файлов
Создание PDF-файлов Сохранить документ в формате PDF также можно, выполнив команду File ? Export (Файл ? Экспорт). Еще один вариант – использование подменю File ? Adobe PDF Presets (Файл ? Сохраненные настройки Adobe PDF); в этом подменю можно выбрать одну из ранее сохраненных настроек экспорта и
4.3. Создание специальных дополнительных элементов в ячейке табличного вида
4.3. Создание специальных дополнительных элементов в ячейке табличного вида Постановка задачи Дополнительных элементов, предоставляемых в iOS, недостаточно для решения задачи, и вы хотели бы создать собственные дополнительные
19.2. Создание файлов талонов
19.2. Создание файлов талонов Постановка задачи Требуется создать файл талона, представляющий данные, которые должны сохраняться на пользовательском устройстве с
Названия специальных файлов
Названия специальных файлов В Windows существует ряд специальных папок, в которых содержатся файлы определенной категории. Например, в папке Избранное содержатся ссылки на любимые сайты пользователя.Проблема заключается в том, что в локализованных версиях Windows эти папки
Открытие и создание файлов
Открытие и создание файлов После создания объекта класса CFile можно открыть файл, вызвав метод Open. Методу Open надо указать путь к открываемому файлу и режим его использования. Прототип метода Open имеет следующий вид:virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);В качестве
Создание файлов автозапуска
Создание файлов автозапуска Перенос коллекций программных файлов на компакт-диски — обыденное занятие. При этом очень удобно создать файл автоматического запуска, предоставляющий доступ к содержимому компакт-диска. Вы думаете, созданием подобных интерфейсов
26.1. Создание регистрационных файлов
26.1. Создание регистрационных файлов Используя любой сценарий, нужно создавать временные файлы или файлы регистрации (журнальные файлы). При выполнении сценариев, создающих резервные копии, удобно сохранять журналы фактических резервных копий. Обычно журналы хранятся в