Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Стандартні потоки, перескерування потоків

Стандартні потоки С. На початку виконання кожної С-програми автоматично відкриваються три стандартні потоки:

 

• 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.

 



Читайте також:

  1. Аналіз руху та ефективності формування грошових потоків
  2. Вантажопотоки, їх види та формування.
  3. Взаємозв’язок фінансових потоків та інфляційних процесів
  4. Взаємозв’язок фінансових потоків та інфляційних процесів
  5. Визначення основних параметрів грошових потоків.
  6. Використання процентних ставок у визначенні номінальних і реальних грошових потоків
  7. Відкриття потоків.
  8. Віднесення грошових потоків до інвестиційного проекту
  9. Внутрішнім джерелом фінансування є накопичені нетто-грошові потоки, що виникають при здійсненні міжнародних операцій.
  10. Геологічна діяльність тимчасових руслових потоків
  11. Графік зміни теплових потоків по тривалості опалювального періоду.
  12. Діагностика грошових потоків




Переглядів: 1708

<== попередня сторінка | наступна сторінка ==>
Відкриття потоків. | Посимвольний обмін даними

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.