Interested Article - Файловый дескриптор

Файловый дескриптор — это натуральное число ( идентификатор ), закреплённое за определённым потоком ввода-вывода . При создании нового потока ввода-вывода (который может быть связан как с файлами, так и с каталогами, сокетами и FIFO ), ядро возвращает его файловый дескриптор создавшему его процессу . Файловый дескриптор может использоваться для получения доступа к потоку.

По умолчанию Unix -оболочки связывают файловый дескриптор 0 с потоком стандартного ввода процесса (клавиатура), файловый дескриптор 1 — с потоком стандартного вывода (терминал), и файловый дескриптор 2 — с потоком диагностики (куда обычно выводятся сообщения об ошибках). Это соглашение соблюдается многими Unix-оболочками и многими приложениями, но не является составной частью ядра. Стандарт POSIX.1 заменил «магические числа» 0, 1, 2 символическими константами STDIN_FILENO, STDOUT_FILENO и STDERR_FILENO соответственно .

Файловые дескрипторы могут принимать значения от 0 до OPEN_MAX . Согласно POSIX.1, значение OPEN_MAX равно 19. В реальных ОС это значение может быть больше. На сегодняшний день в Linux OPEN_MAX считается устаревшим .

В операционной системе Windows для получения дескриптора файла используется функция CreateFile . Затем полученный дескриптор используется для работы с этим файлом. Если это драйвер, то дескриптор будет использоваться в функции DeviceIoControl .

См. также

Примечания

  1. . pubs.opengroup.org . Дата обращения: 8 октября 2023. 5 октября 2023 года.
  2. . pubs.opengroup.org . Дата обращения: 8 октября 2023. 22 августа 2023 года.
  3. . forums.raspberrypi.com . Дата обращения: 8 октября 2023. 8 октября 2023 года.
  4. alvinashcraft (рус.) . learn.microsoft.com (2 июня 2023). Дата обращения: 8 октября 2023. 8 октября 2023 года.
  5. GrantMeStrength (рус.) . learn.microsoft.com (9 марта 2023). Дата обращения: 8 октября 2023. 8 октября 2023 года.


Источник —

Same as Файловый дескриптор