МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Групи функцій для роботи з потокамиФайли і потоки, буферизація даних
У мові С файл є достатньо абстрактним поняттям, яким позначається джерело надходження даних або місце їх нагромадження. Файлом вважається не тільки іменована сукупність даних, розташованих на зовнішньому носії (наприклад, дисковий файл), а й термінальний пристрій (наприклад, клавіатура або принтер). Це означає, що файли можуть мати зовсім різні характеристики. Наприклад, до даних, записаних у файлі на диску, можна виконувати прямий доступ, а введення даних з клавіатури може бути тільки послідовним.
Для уніфікації процесів файлового обміну даними у функціях високорівневого введення/виведення мови С використовують поняття потоку (stream), тобто послідовності байтів, що надходять від певного логічного пристрою (файлу) або передаються у цей пристрій (файл).
Щоб узагальнити обмін даними як для пристроїв, що підтримують побайтове передавання (клавіатура, дисплей, принтер), так і для пристроїв, що передбачають обмін блоками байтів (дискові файли), у процесах введення/вив здійснюється проміжна буферизація даних. Буферизація полягає в наступному. Для кожного відкритого файлу в оперативній пам'яті створюється буфер обміну заданої ємності. Здебільшого ємність буфера для дискових файлів приймається кратною ємності сектора диска (а сам сектор 1024, 2048 байтів), щоб забезпечити максимальну ефективність операцій обміну файл відкривається для читання, то буфер введення відразу заповнюється початковою порцією байтів цього файлу. Коли всі дані з буфера зчитано, автоматично виконується наступне звертання до файлу і в буфер заноситься нова порція байтів. Якщо ж здійснюється запис даних у файл, то вони спочатку заносяться у буфер виведення, а вже потім переписуються у файл за кожної з умов:
1 - заповнено весь буфер, 2 - виконано очищення буфера, 3 - відбувається закриття файлу, 4 - програма завершує роботу стандартним чином (неаварійно).
Буферизація забезпечує високу швидкодію операцій і мінімізує кількість звертань до фізичних пристроїв, які найбільше гальмують процеси введення/виведення.
Підсумовуючи, відзначимо, що високорівневий потоковий обмін даними - це обмін байтами з фізичними файлами і логічними пристроями через систему буферизації, що дає змогу опрацьовувати дані різних форматів і розмірів.
Всі бібліотечні функції високорівневого потокоорієнтованого буферизованого введення/виведення оголошені в заголовному файлі <stdio.h>. У цьому ж файлі визначені макроконстанти, внутрішні змінні, а також спеціальні структурні типи які використовуються цими функціями. Набір функцій для роботи з потоками можна поділити на групи:
функції відкриття/закриття та перескерування потоків; функції введення/виведення даних; функції звертання до вказівник а позиції файла; функції контролю стану файла та помилок введення/виведення; функції керування буферизацією; інші допоміжні функції.
Далі охарактеризуємо функції кожної з цих груп і наведемо приклади їх використання. Читайте також:
|
||||||||
|