МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Стандартні потоки, перескерування потоківСтандартні потоки С. На початку виконання кожної С-програми автоматично відкриваються три стандартні потоки:
• stdin - стандартний потік введення, який за правилами замовчування пов'язується з клавіатурою; • stdout - стандартний потік виведення, який найчастіше пов'язується з виведенням даних на екран; • stderr - стандартний потік повідомлень про помилки, який теж здебільшого скеровується на екран.
Ці потоки мають визначені імена, поза цим вони нічим не відрізняються від інших потоків, їх можна використовувати в усіх операціях файлового введення/виведення. Перескерування потоку. Важливо, що стандартні потоки можна перескеровувати (перепризначати), тобто пов'язувати їх зі заданим файлом чи пристроєм. Перескерування підтримується не всіма операційними системами, але воно реалізоване в MS DOS, Windows, Unix, OS/2. Застосовуючи перескерування, можна простим способом записати в файл всі дані, які в програмі передаються у стандартний потік виведення, чи організувати зчитування з файлу тих даних, які згідно з алгоритмом програми повинні надходити зі стандартного потоку введення. Перескерування потоків виконує функція FILE* freopen (char* fname, char* fmode, FILE* fp);
Ця функція пов'язує потік fp з файлом, ім'я якого задає параметр fname, а режим доступу до даних - параметр fmode. Значення та форми задання параметрів fname і fmode такі ж, як і у відповідних параметрів функції fopen (). За умови успішного виконання функція freopen () повертає вказівник на створений потік, а в разі помилки - константу NULL.
Слід пам'ятати, що після перескерування stdout всі операції виведення (зокрема, виведення підказок) будуть виконуватись не на екран, а в заданий файл. Аналогічно, в разі перескерування потоку введення stdin, всі дані, які за замовчуванням вводяться з клавіатури, будуть зчитуватись зі заданого файлу. Стандартні потоки не треба ні відкривати, ні закривати - ці дії виконуються автоматично.
Приклад перескерування стандартного потоку виведення подано в наступній короткій програмі, де перше звертання до функції puts () викликає виведення повідомлення на екран, а друге - у файл example.out. /***************************************************************************/ /* Приклад перескерування стандартного потоку виведення */ /*******************************************************************************/ #include <stdio.h> int main (void) { puts("\n\t” Це повідомлення виводиться на екран. \n"); freopen ("example.out", "w", stdout); /* потік скеровано в файл */ puts("Дане повідомлення буде записане в файл. \n "); return 0; }
MS DOS дозволяє також здійснювати перескерування стандартних потоків з командного рядка. Для цього використовують символи < та >, за якими вказують ім'я файла перескерування. Наприклад, запуск виконавчого коду програми countmax.exe з командного рядка у формі: countmax.exe < numbers.dat > results.dat вказує, що в процесі роботи програми countmax.exe дані, які мають вводитись зі стандартного вхідного потоку, будуть зчитуватись з файла numbers.dat, а дані, які виводяться у стандартний потік виведення, будуть записуватись у файл results.dat.
Читайте також:
|
||||||||
|