Файл обов'язково має назву і може мати будь-який розмірінформації (максимальна довжина назви та розміру файлу обмежується властивостями конкретної файлової системи). Файл може мати набір атрибутів. Треба зазначити, що файл може мати більш ніж одну назву (або синоніми назви, наприклад в Unix можна створювати жорсткі посилання на файл, які стають повним аналогом початкової назви файлу).
В інформатиці використовується наступне визначення: файл — це впорядкована сукупність даних, що зберігається на диску і займає іменовану область зовнішньої пам'яті. Згідно з термінологією, прийнятою в програмуванні, файл — це довільний блок інформації, або пристрій вводу-виводу, асоційований із ним (як середовище, засіб передачі «довільних блоків інформації»). Кожна комп'ютерна програма відкриває принаймні три файли стандартних потоків: вхідний файл (stdin), вихідний файл (stdout), файл виводу повідомлень про помилки (stderr). Вхідний файл зазвичай асоціюється із клавіатурою, вихідний файл та файл виводу помилок — із дисплеємтерміналу, проте кожен із цих файлів може бути перенаправлений на інший носій інформації, наприклад, на дисковий файл, про який мовилося вище, на мережу, яка також є файлом, на контролер будь-якого периферійного пристрою комп'ютера, зчитувача інформації тощо. Файлом може бути також ділянка оперативної пам'яті програми.
Історія
Слово «файл» вперше було публічно використане в контексті зберігання даних комп'ютером в лютому 1950-го. В рекламі RCA (Radio Corporation of America) у журналі Popular Science[1] описуючи нову «запам'ятовуючу» вакуумну трубку, RCA стверджували:
«…the results of countless computations can be kept „on file“ and taken out again. Such a „file“ now exists in a „memory“ tube developed at RCA Laboratories. Electronically it retains figures fed into calculating machines, holds them in storage while it memorizes new ones — speeds intelligent solutions through mazes of mathematics.»
У 1952 році «файл» використовували для означення інформації, що зберігалась на перфокартах.[2]
Спочатку люди розглядали як файл відповідну апаратуру (а не вміст). Наприклад, тверді диски комп'ютера IBM 350 називались «disk files».[3]
Такі системи, як Compatible Time-Sharing System, увели ідею файлової системи, яка керувала кількома віртуальними «файлами» на одному пристрої зберігання, надаючи терміну його сучасне значення. Імена файлів у CTSS мали дві частини, прочитне для користувача «основне ім'я», і «вторинне ім'я», яке вказувало на тип файлу.[4][5]
Такий підхід до сьогодні зберігся в кількох операційних системах, включно з Microsoft Windows. Хоча сучасний термін «регістровий файл» ілюструє раннє поняття файлу, це поняття загалом зникло.
Звичайний файл зустрічається найчастіше. Для операційної системи такий файл має вигляд простої послідовності байтів.
Каталог — це файл, який містить назви файлів, які в ньому містяться, та посилання на інформацію, яка дозволяє ОС виконувати операції над цими файлами. На запис у каталог має право тільки ядро. Каталог є таблицею, кожен запис якої відповідає певному файлу. По своїй конструкції каталог складається з трьох файлів. Будь-який каталог окрім файлу з своєю назвою, завжди має прописаним всередині два файли з назвами '.' та '..'. Перший вказує на себе, другий вказує на батьківський каталог. Для каталога / файл '..' вказує на себе теж.
Файл зовнішнього пристрою дозволяє доступ до цього пристрою. UNIX розрізняє символьні та блочні файли. Символьні файли використовуються для небуферизованого обміну, а блочні для обміну порціями даних фіксованої довжини (наприклад дискові накопичувачі).
Канали — це файли, які використовуються для зв'язку між процесами. Один з видів міжпроцесорної взаємодії IPC. Це так звані файли типу FIFO. По своїй суті це є конструкція, що має одночасно і вхідний, і вихідний потоки. Як правило їх використовують для зв'язку стандартного виводу одного процесу та стандартного вводу іншого в ланцюжках команд. У цьому випадку вони використовуються без вживання імен файлів. Інформація про ці файли знаходяться в пам'яті в спеціальному масиві. Вони пов'язуються з процесами тільки по номеру inode. Іноді використовуються іменовані канали. Це такий канал у якого є ім'я, яке відображається в тій файловій системі, для якої цей файл зробили. Користувач створивши цей файл може власноруч пов'язати певні процеси так, як йому заманеться.
Сокети — ще один тип файлів, що використовується для міжпроцесорної взаємодії IPC. Це дещо подібна технологія до каналів, проте вона має складнішу конструкцію і дозволяє робити зв'язок між процесами не лише на одному пристрої, а й через мережу. Інтерфейс socket використовується, наприклад, для доступу до мережі TCP/IP.