Файловый дескриптор (Sgwlkfdw ;yvtjnhmkj)
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Файловый дескриптор — натуральное число (идентификатор), закреплённое за определённым потоком ввода-вывода. При создании нового потока ввода-вывода (который может быть связан как с файлами, так и с каталогами, сокетами и FIFO), ядро возвращает его файловый дескриптор создавшему его процессу. Файловый дескриптор может использоваться для получения доступа к потоку.
По умолчанию Unix-оболочки связывают файловый дескриптор 0 с потоком стандартного ввода (клавиатура), файловый дескриптор 1 — с потоком стандартного вывода (терминал), и файловый дескриптор 2 — со стандартным выводом ошибок (диагностические и отладочные сообщения, информация об ошибках). Это соглашение соблюдается многими Unix-оболочками и многими приложениями, но не является составной частью ядра. Стандарт POSIX.1 заменил «магические числа» 0, 1, 2 символическими константами STDIN_FILENO, STDOUT_FILENO и STDERR_FILENO соответственно[1].
Файловые дескрипторы могут принимать значения от 0 до OPEN_MAX[2]. Согласно POSIX.1, значение OPEN_MAX равно 19. В реальных ОС это значение может быть больше. На сегодняшний день в Linux OPEN_MAX считается устаревшим[3].
В операционной системе Windows для получения дескриптора файла используется функция CreateFile
[4]. Затем полученный дескриптор используется для работы с этим файлом. Если это драйвер, то дескриптор будет использоваться в функции DeviceIoControl
.[5]
См. также
[править | править код]- Файл
- Сокет (программный интерфейс)
- Перенаправление (UNIX)
- Поток данных
- Блок управления файлом — альтернативная схема в C/PM и ранних версиях DOS
Примечания
[править | править код]- ↑ stdin . pubs.opengroup.org. Дата обращения: 8 октября 2023. Архивировано 5 октября 2023 года.
- ↑ limits.h . pubs.opengroup.org. Дата обращения: 8 октября 2023. Архивировано 22 августа 2023 года.
- ↑ Whether OpenMAX is deprecated? What is the uptodate multimedia platform on RPi? - Raspberry Pi Forums . forums.raspberrypi.com. Дата обращения: 8 октября 2023. Архивировано 8 октября 2023 года.
- ↑ alvinashcraft Функция CreateFileA (fileapi.h) - Win32 apps (рус.). learn.microsoft.com (2 июня 2023). Дата обращения: 8 октября 2023. Архивировано 8 октября 2023 года.
- ↑ GrantMeStrength Функция DeviceIoControl (ioapiset.h) - Win32 apps (рус.). learn.microsoft.com (9 марта 2023). Дата обращения: 8 октября 2023. Архивировано 8 октября 2023 года.
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |
В статье не хватает ссылок на источники (см. рекомендации по поиску). |