Работа с файлами

  • 18 дек. 2013 г.
  • 2503 Слова
ПОНЯТИЕ ФАЙЛА

Файлом называется группа элементов данных, которой присвоено имя. Для доступа к файлу надо знать его имя (или задать имя, если файл вновь создается). Поэтому должны существовать функции, позволяющие обратиться к файлу по имени и затем получить к нему доступ. Эти функции называются функциями организации доступа к файлу.
После того как к файлу получен доступ, данные можнолибо читать из него, либо записывать в него. Чтобы осуществить чтение или запись, программист должен иметь определенное представление об организации данных в файле.
Каким образом организованы данные в файле? Одна из возможностей представления структуры данных состоит в том, чтобы рассматривать их как непрерывный поток символов. Другая возможность представления - рассматривать их какпоследовательность строк переменной длины. Еще одна возможность состоит в том, чтобы представлять данные организованными в виде форматированных полей, отделенных друг от друга каким-то разделителем (например, пробелом или запятой). Наконец, файл можно рассматривать как последовательность записей фиксированной длины (примером могут служить записи о купле-продаже акций). Для всех этих представлений существуютсоответствующие функции файлового ввода-вывода, которые можно разделить на следующие типы (табл. 1).

Таблица 1. Классификация функций файлового ввода-вывода

|Тип функции |Представление данных |
|Доступ к файлу |Организация доступа к файлу с заданным именем|
|Посимвольный ввод-вывод |Поток символов |
|Построчный ввод-вывод |Последовательность строк переменной длины |
|Форматированный ввод-вывод |Форматированные поля сразделителями |
|Ввод-вывод записей |Последовательность записей постоянной длины |


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

ДОСТУП К ФАЙЛУ

Чтобы получить доступ к файлу или устройству с помощью функций стандартного ввода-вывода, необходимо поместить в память и инициализировать структуру типа FILE (описана в заголовочном файле stdio.h). Эта процедура называется открытием файла. Каждый открытый файл связан с соответствующей структурой типа FILE. Для этого используется функция fopen.Поскольку одновременно может иметься много открытых файлов, то функция fopen возвращает указатель на структуру FILE, соответствующую открываемому файлу. Этот указатель называется указателем файла; он должен быть сохранен для последующего использования в других функциях файлового ввода-вывода. Программист должен сам определить указатель файла, в который будет помещено значение, возвращаемоефункцией fopen, например:
FILE *fp; /* Указатель файла */
Затем программист должен вызвать функцию fopen. Аргументами функции fopen служат спецификация файла и режим доступа к файлу. Покажем типичный вызов функции fopen.
if ((fp = fopen(file_specification, mode)) == NULL)
{
    /* Обработка ошибки открытия файла */
}


Первый аргумент, file_specification, являетсяуказателем на строку (которая нередко является строковой константой), содержащей любое допустимое имя файла операционной системы.
Другой аргумент функции fopen, mode, также является указателем на строку. Эта строка задает режим доступа к файлу. Допускаются три режима, обозначаемые буквами r, w и a: чтение (read), запись (write), и дополнение (append). В...