Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Operatsiyni_sistemi_vidpovidi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
561.15 Кб
Скачать
  1. Організація введення/виведення в ос Unix.

Механізм перенаправлення вводу / виводу є одним з найбільш елегантних, потужних і водночас простих механізмів ОС UNIX. Мета, яка ставилася при розробці цього механізму, полягає в наступному. Оскільки UNIX - це інтерактивна система, то зазвичай програми вводять текстові рядки з терміналу і виводять результуючі текстові рядки на екран терміналу. Для того, щоб забезпечити більш гнучке використання таких програм, бажано вміти забезпечити їм введення з файлу або з виведення інших програм і направити їх висновок у файл або на введення інших програм.

Реалізація механізму грунтується на наступних властивостях ОС UNIX. По-перше, будь-який введення / виведення трактується як введення з деякого файлу та виведення в деякий файл. Клавіатура і екран терміналу теж інтерпретуються як файли (перший можна тільки читати, а в другій можна тільки писати). По-друге, доступ до будь-якого файлу проводиться через його дескриптор (позитивне ціле число). Фіксуються три значення дескрипторів файлів. Файл з дескриптором 1 називається файлом стандартного вводу (stdin), файл з дескриптором 2 - файлом стандартного виводу (stdout), і файл з дескриптором 3 - файлом стандартного виводу діагностичних повідомлень (stderr). По-третє, програма, запущена в деякому процесі, "успадковує" від породив процесу всі дескриптори відкритих файлів.

В головному процесі інтерпретатора командного мови файлом стандартного введення є клавіатура терміналу користувача, а файлами стандартного виводу і виводу діагностичних повідомлень - екран терміналу. Однак при запуску будь-якої команди можна повідомити інтерпретатору (засобами відповідного командного мови), який файл або вивід якої програми повинен служити файлом стандартного вводу для запускається програми і який файл або введення якої програми повинен служити файлом стандартного виводу або виведення діагностичних повідомлень для запускається програми. Тоді інтерпретатор перед виконанням системного виклику exec відкриває вказані файли, підміняючи зміст дескрипторів 1, 2 і 3.

Звичайно, те ж саме може зробити і будь-яка інша програма, що запускає третю програму в спеціально створеному процесі. Отже, все, що потрібно для нормального функціонування механізму перенаправлення вводу / виводу - це дотримуватися при програмуванні угоди про використання дескрипторів stdin, stdout і stderr. Це не дуже важко, оскільки в найбільш поширених функціях бібліотеки введення / виводу printf, scanf і error взагалі не потрібно вказувати дескриптор файлу. Функціяprintf неявно використовує stdout, функція scanf - stdin, а функція error - stderr.

Більш докладно механізм перенаправлення виводу однієї програми на введення іншої програми буде розглянуто у третій частині курсу.

  1. Робота користувача в ос Unix. Командна мова с-shell.

Робота в UNIX починається з реєстрації в системі, яка складається з двох операцій вводу імені користувача (Login) і пароля (Password):

Login: ki-4

Password: ...

Якщо реєстраційне ім'я і пароль допустимі в системі UNIX, то система виведе поточну інформацію і підказку команди. Якщо ж при вході в систему буде зроблена помилка вводу імені або пароля, UNIX виведе повідомлення:

Login incorrect

Після цього можна спробувати ввійти в систему ще раз.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]