Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Основы файловой системы
Основные функции этой системы
Прототипы всех функций записаны в 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 если открыть существующий файл для записи существующее содержание уничтожается и заменяется новыми записями Основные параметры режимов приведены в таблице
Количество открытых файлов определяется константой 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; }
|