файлу стандартного виводу задає файл doc1.out і виводить повідомлення про помилки в
файл errors ("2>" означає перепризначення виводу, що призначався для файлу з дескриптором 2, який відповідає стандартному файлу помилок). Програм-ми ls, mail і nroff не знають, які файли обрані в якості файлів стандартного введення, стандартного висновку і запису повідомлень про помилки; командний процесор shell сам розпізнає символи "<",">" І "2>" і призначає в відповідно до їх вказівкою файли для стандартного вводу, стандартного виводу і запису повідомлень про помилки безпосередньо перед запуском процесів.
Другим конструкційним елементом є канал, механізм, забезпечую-щий інформаційний обмін між процесами, виконання яких пов'язане з
операціями читання і запису. Процеси можуть перепризначувати вивідний потік зі
стандартного виводу на канал для читання з нього іншими процесами, перепризначити на канал свій стандартний ввід. Дані, що посилаються в канал першими
процесами, є вхідними для других процесів. Другі процеси так само
можуть перепризначити свій вивідний потік і так далі, в Залежно від побажань програміста. І знову, так само як і у вищевказаному випадку, процесам немає необхідності знати, якого типу файл використовується в як файлу
стандартного виводу; їх виконання не залежить від того, чи буде файлом стандартного висновку звичайний файл, канал або пристрій. У процесі побудови
великих і складних програм з конструкційних елементів меншого розміру
програмісти часто використовують канали і перепризначення введення-виведення при складанні і з'єднанні окремих частин. І дійсно, такий стиль програмування знаходить підтримку в системі, завдяки чому нові програми можуть працювати разом з існуючими програмами.
Наприклад, програма grep виробляє пошук контексту в наборі файлів (які є параметрами програми) за таким зразком:
grep main a.c b.c c.c
де "main" - підрядок, пошук якої виробляється у файлах ac, bc і cc з
видачею в файл стандартного виводу тих рядків, у яких вона міститься. Вміст вивідного файлу може бути наступним:
a.c: main (argc, argv)
c.c:/* here is the main loop in the program */
c.c: main ()
Програма wc з необов'язковим параметром-l підраховує кількість рядків у файлі
стандартного вводу. Командний рядок
grep main a.c b.c c.c | wc-l
викличе підрахунок числа рядків у зазначених файлах, де буде виявлена ​​підрядок "main"; вивідний потік команди grep надійде безпосередньо на вхід
команди wc. Для попереднього прикладу результат буде такий: 3
Використання каналів часто робить непотрібним створення тимчасових файлів.
4. ФУНКЦІЇ ОПЕРАЦІЙНОЇ СИСТЕМИ
На Малюнку 1.1 рівень ядра операційної системи зображений безпосередньо під рівнем прикладних програм користувача. Виконуючи різні елементарні-ні операції по запитах користувацьких проц...