Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Позиционирования файлов. Максимальная длина имени файла описывается переменной FILENAME_MAX (для Windows - 260)

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

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

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

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

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

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

Для осуществления доступа к файлу нужно знать его организацию. Файл может состоять:
из непрерывного потока символов; последовательности строк переменной длины;
форматированных текстовых полей, разделенных разделителями;
последовательности записей (блоков) постоянной длины.
Следовательно, для работы с файлами должны иметь функции:
доступа к файлу (открытие файла);
посимвольный ввод-вывод;
построчный ввод-вывод;
форматированный ввод-вывод;
ввод-вывод записей.
Разделяют файлы текстовые и бинарные.
В текстовом режиме в файл записываются и читаются текстовые строки, которые заканчиваются символом ‘\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)

<== предыдущая лекция | следующая лекция ==>
Константа BUFSIZ - стандартный размер в байтах буфера для обмена данными с файлом | Нет способа ограничить число символов при вводе, поэтому массив, адресуемый указателем str, может переполниться
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 337; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.