Схема роботи з потоком така ж, як і з файлом: відкрити потік, виконати читання і/або запис, закрити потік.
Відкриває потік функція
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.