Файловые дескрипторы — это целочисленные значения, которые операционная система использует для идентификации открытых файлов и других ресурсов, таких как сокеты или каналы (pipes), в текущем процессе. Каждый процесс, выполняющийся в Linux или другой Unix-подобной системе, может открывать файлы, и для отслеживания этих открытых файлов используется таблица файловых дескрипторов. Файловые дескрипторы разделяются на три основных типа: Рассмотрим простой пример работы с файловыми дескрипторами в Linux: # Перенаправление стандартного вывода в файл echo "Hello, World!" > output...
Файловые дескрипторы: о чем могут спросить на собеседовании? Файловый дескриптор — это просто числовой идентификатор, который операционная система использует, чтобы знать, с каким ресурсом вы работаете. Файл, сокет — это ресурсы, а дескриптор связывает ваше приложение с ними. Всё просто, но есть нюансы, которые стоит понимать. Во-первых, файловые дескрипторы — ограниченный ресурс. На практике это значит: если вы забудете закрыть файлы, даже в небольшом приложении вы рискуете столкнуться с ошибкой Too many open files. Неприятно, особенно на проде. Поэтому всегда используйте конструкцию try-with-resources или аналогичные механизмы. Во-вторых, работа с дескрипторами тесно связана с потоками ввода-вывода. Если на собеседовании зададут вопрос про NIO (Non-blocking IO), будьте готовы объяснить, как селектор позволяет обрабатывать множество сокетов с ограниченным числом дескрипторов. Это, кстати, одна из ключевых идей для высоконагруженных систем. ☕ Поделитесь постом с коллегами, вдруг у них тоже на собеседовании спросят "А что вы знаете про файловые дескрипторы?" 😁 @kodbaza ⚫ #io #nio #file #os