Читайте также:
|
|
Открываемые файлы могут использоваться для разных целей: одни для записи, другие для чтения а третьи и для того и для другого. При открытии файла мы указываем, что собираемся делать с файлом. Кроме того, нужно указать какой это файл: текстовый или двоичный. Каждый раз, когда ОС получает запрос на открытие файла, она создает поток и присваивает ему дескриптор (описатель). Дескриптор можно рассматривать как имя поток, хотя обычно он задается числом. Программа может открыть одновременно несколько потоков. Если мы выполняем некоторую операцию, то дескриптор определяет поток, в котором выполняется операция. Поэтому все функции для работы с файлами должны тем или иным образом получать через параметр этот дескриптор. На стандартном уровне, при открытии файла создается специальная структура - file (stdio.h), которая включает в себя дескриптор.
typedef struct {
short level; /* уровень заполнения буфера*/
unsigned flags; /*флаги состояния*/
char fd; /* дескриптор*/
short bsize; /* размер внутреннего буфера*/
} file
Структуры типа file создается при открытии файла. Сначала для нее динамически выделяется память, а потом эта память заполняется значениями, соответствующими данному потоку. На стандартном уровне для открытия файла используется функция fopen, которая позволяет открыть файл для чтения, записи и добавления в конец файла.
Файлы открывается при помощи функции fopen, у которой два аргумента. И там и там используются строки. File* fopen("имя_файла", "режим")
C:\\FVT\\DATA.TXT(нужно ставить по две \).
Режимы описываются с помощью комбинаций. R - открыть файл для чтения. W - открыть новый файл для записи. Если файл существует, то все в нем стирается. A - открыть файл для записи данных в его конец (то есть добавление). Если файл не существует, то будет создан.
Модификации: R+ - открыть файл для чтения и записи, если файл не существует, то будет ошибка. W+ - открыть файл для чтения и записи, при записи в существующий файл, информация удаляется. A+ - файл открывается для чтения и добавления. Если файл открывается в текстовом режиме, то добавляется буква T. Если в двоичном режиме, то B. Возможны варианты: zt, zb, z+t, z+b.
Если операция открытия выполнена успешно, то функция возвращает указатель на структуру типа файла. Если открыть файл не удалось, то функция возвращает NULL. Каждый раз, после того как в программе используется функция fopen, необходимо проверить завершилась ли операция открытия файла успехом.
Завершение работы с файлом означает вызов функции fclose(fp);
Дата добавления: 2015-04-26; просмотров: 19 | Поможем написать вашу работу | Нарушение авторских прав |
<== предыдущая лекция | | | следующая лекция ==> |
Файловый ввод и вывод | | | Конструктор копирования |