русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Дескриптори файлів


Дата додавання: 2014-11-28; переглядів: 978.


В операційній системі UNIX, весь ввід і вивід здійснюється за допомогою читання та запису до файлів, оскільки всі периферійні пристрої, навіть клавіатура й екран — це файли, які являються частиною основної файлової системи. Це означає, що єдиний однорідний інтерфейс забезпечує комунікацію між програмами та зовнішніми пристроями.

Загалом, перед тим як читати або здійснити запис до файла, вам потрібно повідомити операційну систему про свої наміри — процес, що називається відкриттям файла. Якщо ви збираєтесь здійснити запис до файла, то може виникнути потреба спочатку створити його або очистити попередній зміст. Система перевірить ваше право на такі дії (Чи файл існує? Чи маєте ви дозвіл на доступ до нього?), і якщо все гаразд, поверне програмі невелике додатнє ціле — дескриптор файла. У випадку вводу чи виводу до файла, замість назви використовуватиметься дескриптор файла для його ідентифікації. (Дескриптор файла є аналогічним покажчику на файл, застосовному в стандартній бібліотеці, або індексу файла з MS-DOS.) Вся інформація про відкритий файл зберігатиметься операційною системою, а користувацька програма посилатиметься на файл тільки через дескриптор.

Оскільки ввід і вивід, включаючи клавіатуру й екран, настільки поширені, існує певна організація, щоб зробити їх зручнішими. Коли інтерпретатор команд («оболонка») запускає програму, три файли з дескрипторами 0, 1 і 2 відкрито під назвою стандартний ввід, стандартний вивід і стандартна помилка. Якщо програма читає 0 і записує до 1 і 2, вона спроможна здійснювати ввід і вивід, не турбуючись про відкриття додаткових файлів.

Користувач програми може перенаправляти ввід/вивід до та з файлів за допомогою < і >:

prog <infile >outfile

В цьому випадку, оболонка поміняє стандартні призначення дескрипторів файлів 0 і 1 на вказаний файл (outfile). За звичайних обставин, дескриптор 2 залишається приєднаним до екрана, тож повідомлення про помилки можуть надходити туди. Подібні спостереження стосуються вводу та виводу, переданих через конвеєр. В усіх випадках, призначення файлів міняється оболонкою, а не програмою. Програма ж навіть не знатиме ні звідки надходить її ввід, ні куди йде вивід доти, поки вона користується файлом 0 для вводу і 1 і 2 — для виводу.


<== попередня лекція | наступна лекція ==>
Розділ 8: Інтерфейс системи UNIX | Низькорівневий ввід/вивід - read і write


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн