русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Открытие, закрытие и удаление файла.


Дата добавления: 2013-12-23; просмотров: 910; Нарушение авторских прав


Для работы с файлом его надо «открыть», обработать, «закрыть». При открытии файла программы с ним связывается отдельный физический поток. Файл должен иметь указатель на структуру типа FILE (FILE *fp;). Это тип, определенный в файле stdio.h. При подключении stdio.h автоматически создаются следующие пять потоков:

1. stdin – для стандартного ввода (клавиатура);

2. stdout - для стандартного вывода (монитор);

3. stderr - для стандартного вывода об ошибок (монитор);

4. stdaux- для дополнительного стандартного вывода (монитор);

5. stdprn - для стандартного вывода (принтер).

Когда файл открывается с помощью функции fopen, структуре типа FILE выделяется ОП, адрес которой получает указатель на структуру, и поток связывается со структурой типа FILE. Структура содержит информацию о файле или устройстве, с которым связан файл программы. Указатель типа FILE используется для операций с файлами с помощью библиотечных функций в/в. Открытие потока производится функцией . Прототип функции:

FILE *fopen (const char *filename, const char *mode);

Filename – определяет полное имя физического файла на МД, это может быть указатель-константа, указатель-переменная строки или строковая константа, которая содержит имя физического файла;

mode – определяет режим доступа к файлу, в сочетании с t - для текстовых файлов, в сочетании с b - для бинарных файлов.

Таблица режима доступа

Значение режима Описание режима Позиция в/в
r Открытие существующего файла для чтения. Начало ф
w Открытие нового пустого файла для записи. Если файл с указанным именем существовал, то будет уничтожен и создан новый. Начало ф
a Открытие файла для добавления в конец файла, если файл с указанным именем не существует, то он создается. Конец ф
+ Открытие файла для обновления, допускается чтение из файла и запись в файл Конец ф

Если открытие файла успешно, функция fopen возвращает значение – указатель на переменную типа FILE и связывает файл программы с физическим файлом, а если открытие не состоялось (файл с таким именем не найден) функция fopen возвращает значение NULL. При связывании файла с потоком соответствующим образом инициализируется и внутренняя переменная потока «позиция ввода-вывода». Значение этой переменной соответствует номеру позиции в потоке, с которой начинают записываться или считываться данные. Успешность открытия файла можно проверить с помощью оператора if. Пример:



FILE * fp;

char fn[20] = "ffff.dat";

if (fp = fopen (fn, "rb")) {выполнить блок если файл благополучно открылся}

if ((fp = fopen (fn, "rb")) == NULL) {выполнить блок если файл не открылся}

Функция fclose закрывает один заданный поток (файл). Функция fcloseall закрывает все потоки, открытые с помощью функций fopen, кроме потоков stdin, stdout, stderr. Прототипы этих функций:

int fclose (FILE *stream);

int fcloseall ();

При выполнении закрытия файла буфер потока освобождается, производится запись буферированных данных из буфера в файл. Все буферы, связанные с потоками, сбрасываются и их ОП освобождается. Функция fclose возвращает значение 0, если поток успешно закрыт. Функция fcloseall возвращает количество закрытых потоков. Если при закрытии произошла ошибка, обе функции возвращают значение EOF(-1) (признак конца файла).

С помощью функции remove можно удалить файл. Прототип функции: int remove (const char *filename);

где filename – указатель на строку с именем файла.

Функция remove возвращает 0 при успешном удалении файла и не нуль при неуспешном удалении. Для удаления файл надо предварительно закрыть.



<== предыдущая лекция | следующая лекция ==>
Тип идентификатор | Ввод - вывод записей


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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