Студопедия

КАТЕГОРИИ:

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


Відкриття потоків.




Потік має бути відкритий з використанням функцій fdopen, fopen, або freopen до виконання операцій введення/виведення з цим потоком. Стандартні потоки відкривати не потрібно.

Потік може бути відкритий:

1) тільки для читання;

2) тільки для запису;

3) для читання/запису одночасно;

4) для запису в кінець файлу (режим доповнення).

Крім того, потік може бути відкритий в текстовому або двійковому вигляді в будь-якому з цих випадків. Основною функцією для відкриття файлу потоком є функція fopen: FILE*fopen (char* pathname, char*type);

Функція відкриває файл, ім'я якого визначене в pathname. Це єдине місце в програмі, де ім'я файлу вказується явно. У pathname може бути вказано також і ім'я пристрою.

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

"r" – Відкрити для читання (файл повинен існувати).

"w" – Відкрити порожній файл для запису; якщо файл існує, то його вміст втрачається.

"а" – Відкрити для запису в кінець файлу (додавання); файл створюється, якщо він не існує.

"r+" – Відкрити для читання і запису (файл повинен існувати).

"w+" – Відкрити порожній файл для читання і запису; якщо файл існує, його вміст втрачається.

"a+" – Відкрити для читання і додавання; файл створюється, якщо він не існує.

Визначуваний тип має бути сумісний із способом доступу, з яким файл був відкритий.

Коли файл відкритий з "a" або "a+" типом, дані записуються в кінець файлу. Хоча вказівка файлу може бути переміщений, використовуючи fseek або rewind функції, але він завжди переміщатиметься назад на кінець файлу при записі даних. Таким чином, існуючі дані не можуть бути затерті.

Коли "r+", "w+" або "a+" типи визначені, читання і запис дозволені (якщо файл відкритий для оновлення). Проте перемикання з читання на запис повинне здійснюватися fseek або rewind командами. Поточна позиція може бути визначена для fseek команди, якщо необхідно.

Для задавання режиму відкриття файлу (текстового/двійкового) використовуються символи t і b. Ці символи записуються обов'язково після символів типу доступу. Наприклад, для відкриття двійкового файлу в режимі читання/запису можна записати тип у вигляді "r+b" або "rb+", але не у вигляді "br+" або "b+r" або ''+rb".

Функція fopen повертає вказівку на відкритий файл. У разі помилки повертається значення NULL.

Крім того, файл може бути відкритий за допомогою функцій fdopen і freopen. Функція fdopen дозволяє обробляти файл відкритий/створений за допомогою системи введення/виведення нижнього рівня засобами системи введення/виведення верхнього рівня.

Функція freopen закриває файл, пов'язаний з потоком stream і перепризначає потік stream на файл визначений в pathname.

FILE* freopen (char* pathname, char* type, FILE* stream);

Ця функція використовується для того, щоб зв'язати стандартні потоки stdin, stdout, stderr, stdaux і stdprn з файлами що задаються користувачем.


Поделиться:

Дата добавления: 2014-12-30; просмотров: 144; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты