11.2.3. Открытие файлов в файловой системе
11.2.3. Открытие файлов в файловой системе
Хотя Linux предусматривает множество типов файлов, обычные файлы используются наиболее часто. Программы, конфигурационные файлы, файлы данных — все они подпадают под это определение, и многие приложения не могут (явно) использовать файлы любых других типов. Есть два способа открытия файла, который имеет ассоциированное с ним имя.
#include <fcntl.h>
#include <unistd.h>
int open(char *pathname, int flags, mode_t mode);
int creat(char *pathname, mode_t mode);
Функция open() возвращает файловый дескриптор, указывающий на pathname. Если возвращенное значение меньше нуля, значит, произошла ошибка (как всегда, errno содержит код ошибки). Аргумент flags описывает тип доступа, который нужен вызывающему процессу, а также управляет различными атрибутами открытия и манипулирования файлом. Режим доступа всегда должен быть указан, и он может быть одним из следующих: O_RDONLY, O_RDWR либо O_WRONLY, что запрашивает доступ, соответственно, только по чтению, по чтению и записи либо только по записи. С этим режимом может быть объединены логическим "И" следующие значения для управления прочей семантикой файлов.
Параметр mode указывает права доступа для файла, если он создается и если он модифицируется текущей установкой umask процесса. Если не указано O_CREAT, то mode игнорируется.
Функция creat() в точности эквивалентна следующему вызову:
open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode)
Мы не используем creat() в этой книге, потому что находим функцию open() более простой для чтения и понимания.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Добавление и удаление объектов на файловой системе sysfs
Добавление и удаление объектов на файловой системе sysfs Инициализированные объекты kobject автоматически не экспортируются через файловую систему sysfs. Для того чтобы сделать объект видимым через sysfs, необходимо использовать функцию kobject_add().int kobject_add(struct kobject *kobj);Положение
Добавление файлов на файловой системе sysfs
Добавление файлов на файловой системе sysfs Объекты kobject отображаются на каталоги, и такое отображение выполняется естественным образом. А как насчет создания файлов? Файловая система sysfs — это не что иное, как дерево каталогов без файлов.Атрибуты, используемые по
Кратко об объектах kobject и файловой системе sysfs
Кратко об объектах kobject и файловой системе sysfs В этой главе рассматривается модель представления устройств, файловая система sysfs, объекты kobject и уровень событий ядра. Описание материала главы было бы невозможно без рассмотрения родственных вещей: были также описаны
Пара слов о файловой системе
Пара слов о файловой системе Вопрос: зачем нужны дополнительные тесты на производительность файловой системы, ведь уже есть характерное время, уходящее на gzip-сжатие определенных размеров файлов?Ответ: во-первых, любой веб-сервер и так берет файл из файловой системы и
22.2.3. Ограничение доступа к файловой системе
22.2.3. Ограничение доступа к файловой системе Еще одним способом устранения ошибок в кодах, предоставляющих возможность для атак, является ограничение набора файлов, к которым программа имеет доступ, с помощью системного вызова chroot(). Как обсуждалось в главе 14, метод chroot(),
Глава 5 Доступ из сценариев к файловой системе
Глава 5 Доступ из сценариев к файловой системе Сценарии WSH позволяют получить полный доступ к файловой системе компьютера, в отличие от JScript- или VBScript-сценариев, внедренных в HTML-страницы, где в зависимости от уровня безопасности, который устанавливается в настройках
Мнемоника названий специальных файлов устройств в файловой системе UNIX
Мнемоника названий специальных файлов устройств в файловой системе UNIX Названия специальных файлов устройств в большой степени зависят от конкретной версии UNIX. Тем не менее в этих названиях присутствует общая логика, позволяющая даже в незнакомой системе определить,
Доступ к файловой системе
Доступ к файловой системе Как было показано в главе 2, процесс совершает операции с файлами, адресуя их при помощи файловых дескрипторов — целых чисел, имеющих локальное для процесса значение. Это значит, что файловый дескриптор одного процесса может адресовать
(2.4) Что нового в файловой системе NTFS5, и в чем её отличия от NTFS4?
(2.4) Что нового в файловой системе NTFS5, и в чем её отличия от NTFS4? Самое главное, за что ругали NT4, и в чём она уступала NetWare, это за отсутствие квотирования. Квотирование – это ограничение максимального объёма дискового пространства для пользователя, которое он сможет
Навигация по файловой системе
Навигация по файловой системе Следующее, что необходимо применителю после создания файлов — ориентация среди существующего их изобилия.Для начала при неплохо определиться со своим текущим положением в файловой системе. Этому послужит команда pwd. В ответ на нее
10.1.2.6 Другие функции, имеющие отношение к файловой системе
10.1.2.6 Другие функции, имеющие отношение к файловой системе Такие функции работы с файловой системой, как stat и chmod, выполняются одинаково, как для обычных файлов, так и для устройств; они манипулируют с индексом, не обращаясь к драйверу. Даже системная функция lseek работает
Открытие файлов
Открытие файлов Файл должен быть открыт функциями open, sopen или creat до выполнения первой операции ввода или вывода с использованием функций нижнего уровня для этого файла.Файл может быть открыт для чтения, записи, или для чтения и записи, может быть открыт в текстовом или в
12.4.5. Создание и монтирование файлов с файловой системой
12.4.5. Создание и монтирование файлов с файловой системой Иногда (например, для создания своего мини-дистрибутива) требуется создать файл, содержащий собственную файловую систему. Первым делом надо создать пустой файл, потом создать в нем файловую систему, а затем