Оглавление:
Определение - Что означает дескриптор файла (FD)?
Для большинства операционных систем файловый дескриптор (FD) представляет собой небольшое неотрицательное целое число, которое помогает в идентификации открытого файла в процессе при использовании ресурсов ввода / вывода, таких как сетевые сокеты или каналы. В некотором смысле это можно рассматривать как индексную таблицу открытых файлов. При выполнении операций чтения, записи или закрытия файлов одним из рассматриваемых входных параметров является дескриптор файла. Файловые дескрипторы являются важным компонентом интерфейса прикладного программирования POSIX и обеспечивают примитивный низкоуровневый интерфейс для операций ввода-вывода.
Техопедия объясняет дескриптор файла (FD)
Ядро создает файловый дескриптор всякий раз, когда встречает открытый вызов. Во многих отношениях шлюз в абстракции ядра базового оборудования можно рассматривать как файловые дескрипторы. В операционной системе Unix стандартный ввод представлен дескриптором файла 0, стандартный вывод представлен дескриптором файла 1, а стандартный файл ошибок представлен дескриптором файла 2. Другими словами, в соответствии с тремя стандартными потоками, каждый процесс UNIX будет иметь три стандартных файловых дескриптора. И потоки, и файловые дескрипторы могут представлять соединение с устройством, однако для управления конкретными устройствами необходимо использовать файловые дескрипторы. В большинстве операционных систем, таких как UNIX, файловые дескрипторы представлены как объекты типа «int». Дескриптор файла используется ядром в качестве индекса в таблице описания файлов, чтобы определить, какой процесс первоначально открыл определенный файл, а затем разрешить выполнение запрошенных операций на открытом устройстве или файле.
С точки зрения прикладного программирования, файловые дескрипторы необходимо использовать, если есть какие-либо операции ввода или вывода в специальных режимах, включая неблокирующие вводы. В отличие от потоков, которые предоставляют высокие функции для управления, интерфейс дескриптора файла предоставляет только простые функции для передачи символьных блоков. Низкоуровневые операции могут выполняться непосредственно над дескриптором файла.
