Логический интерфейс программа который обеспечивает доступ к файлу

Аннотация: В настоящей лекции вводится понятие и рассматриваются основные функции и интерфейс файловой системы.

Введение

История систем управления данными во внешней памяти начинается еще с магнитных лент, но современный облик они приобрели с появлением магнитных дисков. До этого каждая прикладная программа сама решала проблемы именования данных и их структуризации во внешней памяти . Это затрудняло поддержание на внешнем носителе нескольких архивов долговременно хранящейся информации. Историческим шагом стал переход к использованию централизованных систем управления файлами . Система управления файлами берет на себя распределение внешней памяти , отображение имен файлов в адреса внешней памяти и обеспечение доступа к данным.

Файловая система — это часть операционной системы, назначение которой состоит в том, чтобы организовать эффективную работу с данными, хранящимися во внешней памяти , и обеспечить пользователю удобный интерфейс при работе с такими данными. Организовать хранение информации на магнитном диске непросто.

Графический интерфейс и файловая система

Это требует, например, хорошего знания устройства контроллера диска, особенностей работы с его регистрами. Непосредственное взаимодействие с диском — прерогатива компонента системы ввода-вывода ОС, называемого драйвером диска. Для того чтобы избавить пользователя компьютера от сложностей взаимодействия с аппаратурой, была придумана ясная абстрактная модель файловой системы. Операции записи или чтения файла концептуально проще, чем низкоуровневые операции работы с устройствами.

Основная идея использования внешней памяти состоит в следующем. ОС делит память на блоки фиксированного размера, например, 4096 байт. Файл , обычно представляющий собой неструктурированную последовательность однобайтовых записей, хранится в виде последовательности блоков (не обязательно смежных); каждый блок хранит целое число записей.

В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла , могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС (Unix) адреса блоков данных файла хранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле). Этот прием, называемый индексацией , является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов . Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и сведения о местоположении данного блока. Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла . Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла . Базовой операцией, выполняемой по отношению к файлу , является чтение блока с диска и перенос его в буфер , находящийся в основной памяти.

Файловая система позволяет при помощи системы справочников ( каталогов , директорий ) связать уникальное имя файла с блоками вторичной памяти, содержащими данные файла . Иерархическая структура каталогов , используемая для управления файлами , может служить другим примером индексной структуры. В этом случае каталоги или папки играют роль индексов, каждый из которых содержит ссылки на свои подкаталоги. С этой точки зрения вся файловая система компьютера представляет собой большой индексированный файл . Помимо собственно файлов и структур данных, используемых для управления файлами ( каталоги , дескрипторы файлов , различные таблицы распределения внешней памяти ), понятие » файловая система » включает программные средства , реализующие различные операции над файлами .

Информатика 7 класс (Урок№8 — Файл и файловая система.)

Перечислим основные функции файловой системы.

  1. Идентификация файлов . Связывание имени файла с выделенным ему пространством внешней памяти .
  2. Распределение внешней памяти между файлами . Для работы с конкретным файлом пользователю не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того чтобы загрузить документ в редактор с жесткого диска, нам не нужно знать, на какой стороне какого магнитного диска, на каком цилиндре и в каком секторе находится данный документ.
  3. Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера.
  4. Обеспечение защиты от несанкционированного доступа.
  5. Обеспечение совместного доступа к файлам , так чтобы пользователю не приходилось прилагать специальных усилий по обеспечению синхронизации доступа.
  6. Обеспечение высокой производительности.

Иногда говорят, что файл — это поименованный набор связанной информации, записанной во вторичную память. Для большинства пользователей файловая система — наиболее видимая часть ОС. Она предоставляет механизм для онлайнового хранения и доступа как к данным, так и к программам для всех пользователей системы. С точки зрения пользователя, файл — единица внешней памяти , то есть данные, записанные на диск, должны быть в составе какого-нибудь файла .

Важный аспект организации файловой системы — учет стоимости операций взаимодействия с вторичной памятью. Процесс считывания блока диска состоит из позиционирования считывающей головки над дорожкой, содержащей требуемый блок, ожидания, пока требуемый блок сделает оборот и окажется под головкой, и собственно считывания блока. Для этого требуется значительное время (десятки миллисекунд). В современных компьютерах обращение к диску осуществляется примерно в 100 000 раз медленнее, чем обращение к оперативной памяти. Таким образом, критерием вычислительной сложности алгоритмов, работающих с внешней памятью , является количество обращений к диску.

В данной лекции рассматриваются вопросы структуры, именования, защиты файлов ; операции , которые разрешается производить над файлами ; организация файлового архива (полного дерева справочников). Проблемы выделения дискового пространства, обеспечения производительной работы файловой системы и ряд других вопросов, интересующих разработчиков системы, вы найдете в следующей лекции.

Общие сведения о файлах

Имена файлов

Файлы представляют собой абстрактные объекты. Их задача — хранить информацию, скрывая от пользователя детали работы с устройствами. Когда процесс создает файл , он дает ему имя. После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам.

Правила именования файлов зависят от ОС. Многие ОС поддерживают имена из двух частей (имя+расширение), например progr.c ( файл , содержащий текст программы на языке Си) или autoexec.bat ( файл , содержащий команды интерпретатора командного языка). Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями. Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени файла . В соответствии со стандартом POSIX, популярные ОС оперируют удобными для пользователя длинными именами (до 255 символов).

Читайте также:
Программа которая обновляет браузер

Типы файлов

Важный аспект организации файловой системы и ОС — следует ли поддерживать и распознавать типы файлов . Если да, то это может помочь правильному функционированию ОС, например не допустить вывода на принтер бинарного файла .

Основные типы файлов : регулярные (обычные) файлы и директории (справочники, каталоги ). Обычные файлы содержат пользовательскую информацию. Директории — системные файлы , поддерживающие структуру файловой системы. В каталоге содержится перечень входящих в него файлов и устанавливается соответствие между файлами и их характеристиками ( атрибутами ). Мы будем рассматривать директории ниже.

Напомним, что хотя внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти , для пользователей обеспечивается представление файла в виде линейной последовательности байтов. Такое представление позволяет использовать абстракцию файла при работе с внешними устройствами, при организации межпроцессных взаимодействий и т. д. Так, например, клавиатура обычно рассматривается как текстовый файл , из которого компьютер получает данные в символьном формате. Поэтому иногда к файлам приписывают другие объекты ОС, например специальные символьные файлы и специальные блочные файлы , именованные каналы и сокеты, имеющие файловый интерфейс. Эти объекты рассматриваются в других разделах данного курса.

Далее речь пойдет главным образом об обычных файлах.

Обычные (или регулярные) файлы реально представляют собой набор блоков (возможно, пустой) на устройстве внешней памяти , на котором поддерживается файловая система. Такие файлы могут содержать как текстовую информацию (обычно в формате ASCII), так и произвольную двоичную (бинарную) информацию.

Текстовые файлы содержат символьные строки, которые можно распечатать, увидеть на экране или редактировать обычным текстовым редактором.

Другой тип файлов — нетекстовые, или бинарные, файлы . Обычно они имеют некоторую внутреннюю структуру. Например, исполняемый файл в ОС Unix имеет пять секций: заголовок, текст, данные, биты реаллокации и символьную таблицу. ОС выполняет файл , только если он имеет нужный формат. Другим примером бинарного файла может быть архивный файл . Типизация файлов не слишком строгая.

Обычно прикладные программы, работающие с файлами , распознают тип файла по его имени в соответствии с общепринятыми соглашениями. Например, файлы с расширениями .c , .pas , .txt — ASCII-файлы, файлы с расширениями .exe — выполнимые, файлы с расширениями .obj , .zip — бинарные и т. д.

Атрибуты файлов

Кроме имени ОС часто связывают с каждым файлом и другую информацию, например дату модификации, размер и т. д. Эти другие характеристики файлов называются атрибутами . Список атрибутов в разных ОС может варьироваться. Обычно он содержит следующие элементы: основную информацию (имя, тип файла ), адресную информацию (устройство, начальный адрес, размер), информацию об управлении доступом (владелец, допустимые операции) и информацию об использовании (даты создания, последнего чтения, модификации и др.).

Список атрибутов обычно хранится в структуре директорий (см. следующую лекцию) или других структурах, обеспечивающих доступ к данным файла .

Организация файлов и доступ к ним

Программист воспринимает файл в виде набора однородных записей. Запись — это наименьший элемент данных , который может быть обработан как единое целое прикладной программой при обмене с внешним устройством. Причем в большинстве ОС размер записи равен одному байту.

В то время как приложения оперируют записями, физический обмен с устройством осуществляется большими единицами (обычно блоками). Поэтому записи объединяются в блоки для вывода и разблокируются — для ввода. Вопросы распределения блоков внешней памяти между файлами рассматриваются в следующей лекции.

ОС поддерживают несколько вариантов структуризации файлов .

Последовательный файл

Простейший вариант — так называемый последовательный файл . То есть файл является последовательностью записей. Поскольку записи, как правило, однобайтовые, файл представляет собой неструктурированную последовательность байтов.

Обработка подобных файлов предполагает последовательное чтение записей от начала файла , причем конкретная запись определяется ее положением в файле . Такой способ доступа называется последовательным (модель ленты). Если в качестве носителя файла используется магнитная лента, то так и делается. Текущая позиция считывания может быть возвращена к началу файла ( rewind ).

Файл прямого доступа

В реальной практике файлы хранятся на устройствах прямого (random) доступа, например на дисках, поэтому содержимое файла может быть разбросано по разным блокам диска, которые можно считывать в произвольном порядке. Причем номер блока однозначно определяется позицией внутри файла .

Здесь имеется в виду относительный номер, специфицирующий данный блок среди блоков диска, принадлежащих файлу . О связи относительного номера блока с абсолютным его номером на диске рассказывается в следующей лекции.

Естественно, что в этом случае для доступа к середине файла просмотр всего файла с самого начала не обязателен. Для специфицирования места, с которого надо начинать чтение, используются два способа: с начала или с текущей позиции, которую дает операция seek. Файл , байты которого могут быть считаны в произвольном порядке, называется файлом прямого доступа .

Таким образом, файл , состоящий из однобайтовых записей на устройстве прямого доступа, — наиболее распространенный способ организации файла . Базовыми операциями для такого рода файлов являются считывание или запись символа в текущую позицию. В большинстве языков высокого уровня предусмотрены операторы посимвольной пересылки данных в файл или из него.

Подобную логическую структуру имеют файлы во многих файловых системах, например в файловых системах ОС Unix и MS-DOS. ОС не осуществляет никакой интерпретации содержимого файла . Эта схема обеспечивает максимальную гибкость и универсальность. С помощью базовых системных вызовов (или функций библиотеки ввода/вывода) пользователи могут как угодно структурировать файлы . В частности, многие СУБД хранят свои базы данных в обычных файлах .

Другие формы организации файлов

Известны как другие формы организации файла , так и другие способы доступа к ним, которые использовались в ранних ОС, а также применяются сегодня в больших мэйнфреймах (mainframe), ориентированных на коммерческую обработку данных.

Первый шаг в структурировании — хранение файла в виде последовательности записей фиксированной длины, каждая из которых имеет внутреннюю структуру. Операция чтения производится над записью, а операция записи переписывает или добавляет запись целиком. Ранее использовались записи по 80 байт (это соответствовало числу позиций в перфокарте) или по 132 символа (ширина принтера). В ОС CP/M файлы были последовательностями 128-символьных записей. С введением CRT-терминалов данная идея утратила популярность.

Читайте также:
Андроид установка программ разрешение

Другой способ представления файлов — последовательность записей переменной длины, каждая из которых содержит ключевое поле в фиксированной позиции внутри записи (см. рис. 11.1). Базисная операция в данном случае — считать запись с каким-либо значением ключа. Записи могут располагаться в файле последовательно (например, отсортированные по значению ключевого поля) или в более сложном порядке. Метод доступа по значению ключевого поля к записям последовательного файла называется индексно-последовательным.


Рис. 11.1. Файл как последовательность записей переменной длины

В некоторых системах ускорение доступа к файлу обеспечивается конструированием индекса файла . Индекс обычно хранится на том же устройстве, что и сам файл , и состоит из списка элементов, каждый из которых содержит идентификатор записи, за которым следует указание о местоположении данной записи. Для поиска записи вначале происходит обращение к индексу, где находится указатель на нужную запись. Такие файлы называются индексированными, а метод доступа к ним — доступ с использованием индекса.

Предположим, у нас имеется большой несортированный файл , содержащий разнообразные сведения о студентах, состоящие из записей с несколькими полями, и возникает задача организации быстрого поиска по одному из полей, например по фамилии студента. Рис. 11.2 иллюстрирует решение данной проблемы — организацию метода доступа к файлу с использованием индекса.


Рис. 11.2. Пример организации индекса для последовательного файла

Следует отметить, что почти всегда главным фактором увеличения скорости доступа является избыточность данных.

Способ выделения дискового пространства при помощи индексных узлов, применяемый в ряде ОС (Unix и некоторых других, см. следующую лекцию), может служить другим примером организации индекса.

В этом случае ОС использует древовидную организацию блоков, при которой блоки, составляющие файл , являются листьями дерева, а каждый внутренний узел содержит указатели на множество блоков файла . Для больших файлов индекс может быть слишком велик. В этом случае создают индекс для индексного файла (блоки промежуточного уровня или блоки косвенной адресации).

Источник: intuit.ru

Позиционирования файлов

Максимальная длина имени файла описывается переменной FILENAME_MAX (для Windows — 260). Максимальное количество файлов, которое можно открыть одновременно, — FOPEN_MAX (для Windows — 20).

Константа BUFSIZ — стандартный размер в байтах буфера для обмена данными с файлом.

В языке C++ (и в С тоже) не предусмотрены какие-либо возможности для организации ввода-вывода. Весь ввод-вывод перенесен в специальные библиотеки. Это позволило добиться эффекта “независимости от платформы”. Иначе говоря, получить аппаратно независимый язык разработки программ для различных платформ.

В программах на языке С++ можно равноправно использовать две библиотеки ввода-вывода: стандартную библиотеку функций языка С (стандарт ANSI С) и библиотеку классов, специально созданную для языка С++. Эти библиотеки используют два принципиально различных механизма для организации ввода-вывода:

первый основан на концепции файлов; второй работает со специальными классами, ориентированными на ввод-вывод – потоковыми классами.

Работа с библиотекой

Чтобы получить доступ к функциям библиотеки, приложение должно подключить файл stdio.h. Этот файл содержит объявления констант, типов данных и структур, используемых этими функциями, а также прототипы самих функций и описания служебных макросов.

Многие константы, содержащиеся в файле stdio.h, находят достаточно широкое применение в приложениях:

константа EOF возвращается функциями ввода при достижении конца файла, (обычно=-1);

константа NULL служит нулевым («пустым») указателем;

FILE -имя типа структуры стандартного файлового ввода-вывода;

Обработка файлов
Файл – это последовательность байтов, хранящихся на внешнем носителе информации. Каждый файл имеет имя. Работа с файлом поддерживается операционной системой, которая имеет средства:

• создания и уничтожения файлов;

• поиска файлов на внешнем носителе;

• чтения и записи данных из файлов и в файлы;

• открытия и закрытия файлов;

Для осуществления доступа к файлу нужно знать его организацию. Файл может состоять:
из непрерывного потока символов; последовательности строк переменной длины;
форматированных текстовых полей, разделенных разделителями;
последовательности записей (блоков) постоянной длины.
Следовательно, для работы с файлами должны иметь функции:
доступа к файлу (открытие файла);
посимвольный ввод-вывод;
построчный ввод-вывод;
форматированный ввод-вывод;
ввод-вывод записей.
Разделяют файлы текстовые и бинарные.
В текстовом режиме в файл записываются и читаются текстовые строки, которые заканчиваются символом ‘n’ и могут содержать символы ‘t’.
При записи и чтении данных может происходить преобразование этих данных.
В бинарном режиме данные записываются и читаются один к одному.

Файл – это последовательность байтов, хранящихся на внешнем носителе информации.
Поток – логический интерфейс (программа) который обеспечивает доступ программы-пользователя к файлу.
Прежде чем использовать поток для доступа к файлу, его необходимо соединить с файлом.
Эта информация хранится в структуре типа FILE, поэтому поток имеет вид FILE* (их часто отождествляют).

Файлы описываются с помощью указателей на внутреннюю структуру FILE.
Примеры описания:
FILE *f1, *f2;
Программист имеет возможность работы с предопределенными файлами stdin, stdout, stderr, stdaux и stdprn.
Работа с файлом начинается с его открытия.

Открытие файла
FILE* fopen (const char* fname,
const char* mode);
fname – имя файла:
mode – режим открытия.
В случае удачи возвращает указатель на поток, иначе – 0.
mode может принимать значения:
r существующий файл открывается для чтения;
w создается новый файл, который открывается для записи; если такой файл уже существует, то предыдущее содержимое стирается;
a существующий файл открывается для добавления информации в его конец;
r+ существующий файл открывается для чтения и записи; но не разрешается запись в конец файла, т.е. увеличение файла;
w+ создается новый файл, который открывается для чтения и записи;
a+ существующий файл открывается для чтения и добавления информации в его конец или создается при его отсутствии.
Кроме того, в режиме открытия можно указывать символы t или b, которые соответствуют текстовому или бинарному режиму (в первом случае признаки конца строки обрабатываются по-особому, во втором – они не выделяются из другой информации).

Перенаправление потока

FILE* freopen (const char* filename, const char* mode,
FILE* stream);
Закрывает файл, соединенный с потоком stream, и соединяет этот поток с файлом filename в режиме mode.

Закрытие файла

Читайте также:
Где найти код активации на касперского в программе

int fclose(FILE* stream);

Закрывает файл, при этом освобождая все буферы потока. В случае удачи возвращает 0, иначе – EOF.
Часто объявление файла объединяется с его открытием. Таким образом, канва программы, работающей с файлами, имеет следующий вид:

if ((FILE *f = fopen(”myfile.txt”,”rt”))!= NULL)

Источник: studopedia.su

Архитектура виртуальной файловой системы

Рассмотрим архитектуру УЕ8, представленную на рис. 4.1.

Архитектура УЕ5 и ее связь с другими подсистемами

Рис. 4.1. Архитектура УЕ5 и ее связь с другими подсистемами:

— потоки данных; — зависимости от;

— потоки управления

Большинство функций файловой системы реализовано (как и функций других подсистем ядра) в виде динамически загружаемых модулей. Это позволяет пользователю ОС сконфигурировать ядро так, чтобы оно занимало минимальное место, а необходимые для выполнения модули загружались по мере их вызова. Например, для печати в UNIX используется специальный драйвер, который обслуживает порт принтера. Этот драйвер загружается динамически только в тот момент, когда необходимо вывести информацию на печать. После окончания печати он выгружается и освобождает память.

В состав виртуальной файловой системы входят следующие блоки:

  • • модули драйверов физических устройств (Device Drivers), каждый из которых поддерживает контроллер конкретного физического устройства. Поскольку существует большое количество обслуживаемых устройств, то есть и большое количество драйверов к ним;
  • • модуль интерфейсов, аппаратно-независимых от устройств (Device Independent Interface), обеспечивает доступ ко всем устройствам в системе;
  • • модуль логической файловой системы (Logical System) объединяет все устройства системы в единую виртуальную файловую систему;
  • • модуль системных интерфейсов, аппаратно-независимых от устройств (System Independent Interface), обеспечивает единый для всех файловых систем доступ к устройствам в системе. Этот модуль представляет все ресурсы физических устройств ОС, используя либо бит-ориентированный, либо байт-ориентированный интерфейсы;
  • • модуль внешнего системного интерфейса (System Call Interface) обеспечивает пользовательским процессам управление и доступ к файловой системе.

Интерфейсы виртуальной файловой системы

Так же как и остальные подсистемы ядра, поддерживает два вида интерфейсов: внешний интерфейс для обслуживания процессов пользователя и внутренний интерфейс для обеспечения взаимодействия с другими подсистемами. Внешний интерфейс обеспечивает для пользователя доступ к файлам и каталогам. К основным файловым операциям ОС иШХ [1] относятся:

  • • создание файла, не содержащего данных;
  • • удаление файла и освобождение занимаемого им дискового пространства;
  • • открытие файла. Цель данного системного вызова — разрешить системе проанализировать атрибуты файла, проверить права доступа к нему и вернуть некоторый числовой параметр для пользовательского обращения к файлу (дескриптор или номер канала);
  • • закрытие файла и освобождение места во внутренних таблицах файловой системы;
  • • позиционирование. Дает возможность специфицировать место внутри файла, откуда будет производиться считывание (или запись) данных, т.е. определить текущую позицию;
  • • чтение данных из файла с текущей позиции. Пользователь должен задать объем считываемых данных и предоставить для них буфер в оперативной памяти;
  • • запись данных в файл с текущей позиции. Если текущая позиция находится в конце файла, то его размер увеличивается, в противном случае запись осуществляется на место имеющихся данных, которые, таким образом, теряются.

Есть и другие операции — внешние, например, переименование файла, получение атрибутов файла и т.п.

Операции над файлами типа open/close/read/write/seek/tell и над каталогами типа readdir/create/unlink/chmod/stat и некоторые другие полностью соответствуют стандарту POSIX систем. При работе с каталогами обычно используются следующие системные операции [2] :

  • • создание каталога. Вновь созданный каталог включает записи с именами «.» и «..», однако считается пустой;
  • • удаление директории. Операция может быть исполнена только над пустым каталогом;
  • • открытие директории для последующего чтения. Например, чтобы перечислить файлы, входящие в каталог, процесс должен его открыть и считать имена всех файлов, которые в нем находятся;
  • • закрытие каталога после ее чтения для освобождения места во внутренних системных таблицах;
  • • поиск. Данный системный вызов возвращает содержимое текущей записи в открытом каталоге. Вообще говоря, для этих целей может использоваться системный вызов read, но в этом случае от программиста потребуется знание внутренней структуры директории;
  • • получение списка файлов в каталоге;
  • • переименование. Имена директорий можно менять, как и имена файлов;
  • • создание файла. При создании нового файла необходимо добавить в каталог соответствующий элемент;
  • • удаление файла — удаление из каталога соответствующего элемента. Если удаляемый файл присутствует только в одной директории, то он вообще удаляется из файловой системы, в противном случае система ограничивается только удалением специфицируемой записи.

Интерфейсы VFS имеют большой набор функций для манипулирования потоками информации и структурами данных, особенно для работы с ?-узлами и файлами. Например, интерфейс I узлов содержит следующие функции:

  • • chdir() — сменить директорию;
  • • chrootQ — сменить root-директорию;
  • • dir() — класс директории;
  • • closedir()— закрывает дескриптор директории;
  • • getcwdQ — получает текущую рабочую директорию;
  • • opendir() — открывает дескриптор директории;
  • • readdir() — читает вхождение из дескриптора директории;
  • • rewinddir() — переходит в начало дескриптора директории;
  • • link() / symlink() / unlinkQ/readlink() / follow linkO — управление связями в файловой системе;
  • • mkdir() / rmdir() — создание и удаление каталогов;
  • • mknod() — создание каталога, специального файла или обычного файла (regular);
  • • readpage() / writepage() — чтение или запись страницы физической памяти;
  • • smapQ — пометить логический блок файла на физическом устройстве;
  • • гепате() — переименовать файл или каталог.

Интерфейс для работы с файлами:

  • • ореп() / releaseQ— открыть/закрыть файл;
  • • readQ/writeQ— чтение запись файла;
  • • create() — создание файла в каталоге;
  • • lookupi)— поиск файла в каталоге;
  • • select()~ ожидание, пока свойства файла не изменятся (т.е. файл станет доступным на чтение или запись);
  • • heek() / fseek() — поиск в файле по смещению;
  • • ттарО— отметить регион файла внутри виртуальной памяти пользовательского процесса;
  • • fsyncO/fasyncO— синхронизация некоторого буфера памяти с физическим устройством;
  • • truncate() — установить длину файла равной нулю;
  • • permissionO— проверка и установка пользовательским процессом свойств файла на выполнение;
  • • ioctlO— установить атрибуты файла;
  • • revalidateO— проверить, чтобы вся кэшированная информация была правильной.
  • [1] Finkei R. An Operating Systems Vade Месит.
  • [2] Столлингс В. Операционные системы М. : Вильямс, 2001.

Источник: studme.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru