Для того чтобы произвести операции ввода-вывода с файлом, пользователь предварительно должен его открыть и только после этого вызывать функции read или write (readv или writew для ввода-вывода сборкой-разъединением) по отношению к дескриптору, возвращенному open.
Также может иметь смысл заглянуть на сайт ooo-vostok.ru, ведь именно там можно узнать много нового на тему http://ooo-vostok.ru/prodazha-kontejnerov-20-i-40-futov/. Тема контейнер во Владивостоке может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт ooo-vostok.ru, и тема контейнер во Владивостоке начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема контейнер во Владивостоке очень подробно представлена на сайте ooo-vostok.ru. Трудно найти более детальное освещение темы контейнер во Владивостоке чем это сделано на сайте ooo-vostok.ru. Спасибо сайту ooo-vostok.ru за такое доскональное преподнесение темы контейнер во Владивостоке.
Независимый от файловой системы код помещает параметры вызова в структуру uio, как это описывалось
В случае применения вызовов read или write структура uio будет указывать на массив iovec[], состоящий из одного элемента. Ядро использует дескриптор файла для обнаружения объекта открытого файла и проверки на то, что данный файл был открыт в нужном режиме доступа.
Если режим окажется правильным, ядро отложит указатель vnode объекта открытого файла для обнаружения vnode.
В системе UNIX вызовы, осуществляющие ввод-вывод, должны выполняться последовательно. Если два пользователя одновременно вызывают read или write по отношению к одному и тому же файлу, ядро прежде завершает одну операцию и только затем начинает выполнение второй. Следовательно, ядро блокирует vnode перед началом выполнения read или write и освобождает объект после завершения ввода-вывода. В системе SVR4 блокировка и освобождение производятся при помощи операций V0P_RWL0CK и V0P_RWUNL0CK. После этого система вызывает функцию V0P_READ или V0P_WRITE для выполнения действий, зависящих от конкретной файловой системы. Большая часть этих действий производится на зависимом от файловой системы уровне. Более подробно о них вы прочтете в разделах 9.3.3 (для s5fs) и 10.6.3 (для NFS). В системе SVR4 операции ввода-вывода файлов схожи с обработкой подсистемы виртуальной памяти, что будет обсуждаться позже, в разделе 14.8.
Атрибуты файлов
Для изменения или запроса специфических атрибутов файлов, таких как идентификатор владельца или права (см. раздел 8.2.2), существует несколько различных системных вызовов. В ранних версиях UNIX такие вызовы производили прямое чтение или запись в поля индексного дескриптора, хранящегося в памяти. Если было необходимо, атрибуты копировались в дескриптор, находившийся на диске. Действия функций сильно зависели от конкретной реализации системы. Так как архитектура vnode/vfs поддерживает большое количество типов файловых систем, каждя из которых может иметь различные методы хранения структур метаданных в памяти или на диске, то можно сказать, что она предлагает общий интерфейс взаимодействия.
Для чтения и записи атрибутов файла применяются операции
VOP_GЕТATTR
и
V0P_SETATTR
при этом используется независимый от файловой системы объект под названием vattr. Хотя эта структура и содержит информацию, идентичную с содержимым индексного дескриптора s5fs или ufs, ее формат является более общим и не зависит от какой-либо одной файловой системы. Это дает возможность специфическими реализациям преобразовывать информацию между общей структурой и собственными структурами метаданных.
Опубликовал katy
July 09 2015 08:27:26 ·
0 Комментариев ·
3067 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.