Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4. Файлы, файловые системы - презентация

.pdf
Скачиваний:
86
Добавлен:
11.04.2014
Размер:
224 Кб
Скачать
☆

Открытие файла с получением дескриптора

–int — дескриптор открытого файла, -1 при ошибке

●_open(

– const char * - путь к файлу

–int - флаги

●_O_CREAT — создает файл если его нет

●_O_EXCL — возвращает ошибку, если файл существует

●_O_APPEND — режим записи в конец файла

●_O_TRUNC — уничтожает содержимое файла если он есть

●_O_NOINHERIT — делает дескриптор ненаследуемым

●_O_BINARY, _O_TEXT — режим работы с файлом

●_O_RDONLY, _O_WRONLY, _O_RDWR — режим доступа

–int — режим доступа, если файл создается (в Windows задается константами _S_IREAD и/или _S_IWRITE)

21 )

Задание

●Откройте файл new.txt, создав его если он отсутствует, в режиме записи в конец файла

–файл открывается как текстовый с возможностью только записи;

–если файла нет, то он создается с доступом как на чтение, так и на запись

–дескриптор открытого файла сохраните в переменную myfile.

22

Открытие файла с получением дескриптора

int myfile=_open("new.txt", _O_CREAT|_O_APPEND|_O_TEXT|_O_WRONLY, _S_IREAD|_S_IWRITE);

23

Права доступа к файлам в ОС Unix

●В ОС Unix права определяются тремя битами:

–право на исполнение файла (1);

–право на запись файла (2);

–право на чтение файла (4).

●Эти биты формируют число, задаваясь для трех категорий пользователей

–для владельца файла (биты 6-8);

–для группы владельца (биты 3-5);

–для всех остальных пользователей (биты 0-2).

●Для записи прав доступа удобно использовать восьмеричную константу, т. к. одна цифра в ней

24

соответствует 3-м битам.

Задание

●Укажите число, описывающее следующие права доступа к создаваемому файлу в ОС Unix:

–для владельца — все права;

–для группы владельца — права на чтение и исполнение;

–для остальных пользователей — права только на чтение.

●Укажите число, описывающее права доступа на чтение и запись к файлу для всех без

25 исключения пользователей.

Права доступа к файлам в ОС Unix

●Детализированный доступ: 0754

●Доступ на чтение и запись для всех: 0666

26

Работа с файловым дескриптором

–int — количество прочитанных/записанных байт

●read/write(

–int — дескриптор файла

–void * - указатель на начало данных, для функции write может быть константным,

–unsigned int — количество байт для чтения/записи

)

27

Работа с файловым дескриптором

–int — 1 если достигнут конец файла, 0 — если нет, -1 при ошибке

●eof(

–int — дескриптор файла

)

–int — 0 при успехе, -1 при ошибке

●close(

–int — дескриптор файла

)

28

Задание

●Запишите в файл, чей дескриптор сохранен в переменной fdw массив целых чисел arr из 10 элементов

●Считайте из файла, чей дескриптор сохранен в переменной fdr, структуру в переменную point.

29

Работа с файловым дескриптором

write(fdw, (void *)arr, sizeof(int)*10);

read(fdr, (void *)&point, sizeof(point));

30