Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Основы файловой системы

Основные функции этой системы

Функции    
fopen() Открывает файл  
fclose() Закрывает файл  
Putc() Записывает символ в файл  
Fputc() Тоже  
Getc() Считывает символ из файла  
Fgetc() Тоже что getc()  
Fgets() Считывает строку из файла  
Fputs() Тоже что gets()  
Fseek() Устанавливает курсор на заданный байт файла  
Ftell() Возвращает текущую позицию курсора  
Fprintf() Файловый аналог printf()  
Fscanf() Файловый аналог функции scanf()  
Feof() Возвращает истинное значение в конце файла  
Ferror() Возвращает истинное значение если была ошибка  
Rewind() Устанавливает курсор в начало файла  
Remove() Стирает файл  
Fflush() Очищает поток  

Прототипы всех функций записаны в stdio.h, здесь же находятся три типа: size_t, fpos_t и FILE. Здесь же определены макросы (символьные имена, клторые до компиляции вставляют в текст структуру выражений, которые перед компиляцией выполняются): NULL (определяет нулевой указатель), EOF(константа -1), FOPEN_MAX (определяет количество файлов, открываемое однвременно), SEEK_SET, SEEK_CUR, и SEEK_END (остальные используются функцией fseek() для прямого доступа к записям файла).

Указатель файла fp – описывает конкретный файл – его имя, структуру, статус, текущее положение курсора, используется потоком при выполнении ввода-вывода. Объявление указателя

FILE *fp;

 

Открытие файла – fopen()

Прототип функции fopen()

FILE *fp;

fp = fopen(“test”, “w”);

 

Лучше выполнить так

FILE *fp;

if((fp =fopen(“test”, “w”))==NULL){

printf(“Невозможно открыть файл. \n”);

exit(1);

} // Теперь можно установить ошибки при открытии

 

Некоторые особенности

1 при открытии для чтения несуществующего файла функция fopen() вернет признак ошибки;

2 при открытии несуществующего файла для дозаписи, он будет создан;

3 при открытии для дозаписи существующего файла записи будут записаны в его конец;

4 несуществующий файл при записи создается;

5 если открыть существующий файл для записи существующее содержание уничтожается и заменяется новыми записями

Основные параметры режимов приведены в таблице

Значения Содержание  
r Открыть текстовый файл для чтения  
w Создать текстовый файл для записи  
a Добавить записи в конец текстового файла  
rb Открыть бинарный файл для чтения  
wb Создать бинарный файл для записи  
ab Добавить запись в конец бинарного файла  
r+ Открыть текстовый файл для чтения и записи  
w+ Создать текстовый файл для чтения и записи  
a+ Добавить записи в конец текстового файла  
r+b Открыть бинарный файл для чтения и записи  
w+b Создать бинарный файл для чтения и записи  
a+b Добавить записи в конец бинарного файла  
     

 

Количество открытых файлов определяется константой FOPEN_MAX, которое обычно равно 8.

 

Закрытие файла

fclose(fp); // следить чтобы диск не переполнялся.

 

Запись символов в файл и чтение символов из файла

Это выполняется функциями fopen(), getc(), putc() b fclose()

 

#include < stdio.h>

#include < stdlib.h>

 

int main(int argc, char *argv[]) // main() зависит от компилятора

{

FILE *fp;

char ch;

 

if(arg! =2) {

printf(“Не указано имя файла. \n”);

exit(1);

}

if((fp= fopen(argv[1], “w”))==NULL) {

printf(“Невозможно открыть файл.\n”);

exit(1);

}

 

do { ch = getchar();

putc(ch, fp);

} while (ch! = ‘$’);

 

fclose(fp);

 

return 0;

}

 

Вывод содержание текстового файла на экран

 

 

#include < stdio.h>

#include < stdlib.h>

 

int main(int argc, char *argv[]) // main() зависит от компилятора

{

FILE *fp;

char ch;

 

if(arg! =2) {

printf(“Не указано имя файла. \n”);

exit(1);

}

if((fp= fopen(argv[1], “r”))==NULL) {

printf(“Невозможно открыть файл.\n”);

exit(1);

}

 

 

ch = getc(fp); // Считываем символ

while (ch! = EOF) {

putchar(ch); // Вывод символа на экран

сh = getc(fp);

}

 

fclose(fp);

 

return 0;

}

 

 

<== предыдущая лекция | следующая лекция ==>
Фрагментация и дефрагментация | Файловые системы Windows




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.