Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Ввід-вивід информации, спеціфікації, оператори та ресурси вводу-виводу

Реферат Ввід-вивід информации, спеціфікації, оператори та ресурси вводу-виводу





є аргументів; копіює *

* стандартний ввід * / (stdin, stdout); (- argc> 0) ((fp=fopen (* + + argv, «r»)) == NULL) {( " cat: can't open% s n, * argv); 1;

} else {(fp, stdout); (fp); 0;

}

/ * filecopy: копіює файл ifp до файлу ofp * / filecopy (FILE * ifp, FILE * ofp)

{c; ((c=getc (ifp))!=EOF) (c, ofp);

}


покажчики на файл stdin и stdout являються об'єктами типу FILE *. Незважаючі на це, смороду є константами (сталь), а не зміннімі, что внеможлівлює Надання їм нового значення.

Функція

fclose (FILE * fp)


являється протілежністю fopen, вона розріває зв'язок между покажчики на файл и зовнішньою Назв, отриманий fopen, звільняючі покажчик для Іншого файлу. Оскількі більшість операційніх систем мают певне обмеження кількості файлів, Які программа в змозі Відкрити одночасно, добре ідеєю буде звільніті покажчики на файли, ЯКЩО їх больше не нужно, як ми це зробили в cat. Існує такоже Інша причина сделать fclose для файла виводу - це очищує буфер, в якому putc накопічує вивід. fclose віклікається автоматично для шкірного відкритого файлу при нормальному завершенні програми. (Ві можете замкнути stdin и stdout, ЯКЩО смороду непотрібні. Їх такоже можна перепрізначіті помощью бібліотечної Функції freopen.)

Обробка помилок у cat НЕ є Ідеальною. Проблема в тому, что ЯКЩО Неможливо дістатіся до одного з файлів з якоїсь причини, діагностічне ПОВІДОМЛЕННЯ буде Виведення в кінці зчеплення виводу. Це, Можливо, допустимо, ЯКЩО вивід Направляється на екран, альо НЕ тоді, коли ВІН Надходить у файл або іншу програму через конвеєр.

Щоб краще справлятіся з подібнімі сітуаціямі, програмам надається другий потік виводу под назв stderr, поряд Із stdin и stdout. Вивід, Записаний до stderr, як правило, з'являється на екрані даже ЯКЩО стандартний вивід перенаправлено.

Давайте віправімо cat так, щоб писати его ПОВІДОМЛЕННЯ про помилки до стандартної помилки.


# include

/ * cat: зчеплює файли, 2-а версія * / (int argc, char * argv [])

{* fp; filecopy (FILE *, FILE *); * prog=argv [0];/* Назва програми, для помилок * / (argc == 1) / * немає аргументів; копіює *

* стандартний ввід * / (stdin, stdout); (- argc> 0) ((fp=fopen (* + + argv, «r»)) == NULL) {( stderr, «% s: can't open% s n»,, * argv); (1);

} else {(fp, stdout); (fp);

} (ferror (stdout)) {(stderr, «% s: error writing stdout n», prog), (2);

} (0);

}


Програма сігналізує помилки в два способи. Перший: діагностичний вивід, спрічіненій fprintf Надходить до stderr, тож ВІН знаходится свій шлях на екран вместо того, щоб знікнуті кудись через конвеєр або в файлі виводу. Мі включили в ПОВІДОМЛЕННЯ Назву програми з argv [0], тож, ЯКЩО программа вікорістовується разом з іншімі, джерело помилки буде ідентіфіковано.

Другий: программа вікорістовує функцію стандартної бібліотеки exit, яка завершує Виконання програми, ЯКЩО ее віклікано. Аргумент exit стане Доступний будь-якому процесові, Я...


Назад | сторінка 9 з 20 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Асинхронний ввід / вивід
  • Реферат на тему: Як враховувати рух грошей, якщо компанія розраховується через електронний г ...
  • Реферат на тему: Поняття та використання Network File System
  • Реферат на тему: Якщо лікарняний невірно розрахований
  • Реферат на тему: Якщо ви викликаєте швидку допомогу