Відкриття і закриття потоку

Схема роботи з потоком така ж, як і з файлом: відкрити потік, виконати читання і/або запис, закрити потік.

Відкриває потік функція

FILE* fopen(

const char *filename,// ім'я файлу, що асоціюється з потоком

const char *mode // рядок режимів роботи з потоком

) - повертає покажчик на потік, який ідентифікує його в подальших операціях.

 

У рядку режимів можуть знаходитися наступні символи:

r - відкрити тільки для читання.

w - створити для запису. Існуючий файл буде перекритий новим.

а - відкрити для дозапису, або створити для запису, якщо файл не існує.

+ - операції виконуватимуться з вже існуючим файлом.

t - текстовий режим (обробка символів CR-LF).

b - двійковий режим (ніякої обробки).

За відсутності в рядку b або t, режим визначається глобальній змінній _fmode, визначеній в заголовному файлі fcntl.h.

FILE - це структура для потоку, що управляє, оголошена в stdio.h. Вона не призначена для прямого використання.

Потік є програмною надбудовою над файлом, що надає програмісту додатковий сервіс. Крім сумісного відкриття потоку і файлу (fopen), можна відкрити потік і асоціювати його з вже відкритим файлом (fdopen), відкрити файл і асоціювати його з вже відкритим потоком (freopen).

Закриває потік і вивантажує буфери функція

int fclose(FILE *stream ) - повертає 0 при успіху і EOF при помилці.

EOF - константа, визначена в stdio.h.

int fcloseall(void) - закриває всі відкриті потоки, окрім стандартних: stdin, stdout, stdprn, stderr і stdaux.