# Работа с файлове

Преди да може да се чете или пише файл, той трябва да бъде отворен. Ядрото поддържа списък на отворените файлове, наречен файлова таблица. Тази таблица се индексира чрез неотрицателни цели числа, известни като дескриптори на файловете (често съкратени **fds**). Всеки запис в списъка съдържа информация за отворен файл, включващ указател към копие в паметта на файла за поддръжка на inode и свързаните с него метаданни, като например позицията на файла и режимите за достъп. Както потребителското пространство, така и пространството на ядрото използват файловите дескриптори като уникални "бисквитки" по време на работа. Отварянето на файл връща дескриптор на файла, а последващите операции (четене, писане и т.н.) приемат описанието на файла като основен аргумент.

Основни методи за работа с файлове са представени в таблицатаа по-доли:

| Метод    | Пояснение                                                  |
| -------- | ---------------------------------------------------------- |
| fopen()  | Отваря файл и връща файлов дескриптор                      |
| fread()  | Чете данни от файл                                         |
| fwrite() | Записва данни във файл                                     |
| fflush() | Изчиства потока                                            |
| close()  | Затваря файловия дескриптор                                |
| fseek()  | Задава позицията на файловия дескриптор до дадена стойност |
| fcntl()  | Манипулира файловия дескриптор (Например за заключване)    |
| errno    | Номер на последната грешка                                 |
