Проверьте API или систему / инструмент, который вы используете для своих конкретных целей программирования.(дескрипторы / файловые дескрипторы имеют много применений в программировании Linux, таких как программирование сокетов, манипулирование файлами, shared_memory и т. д.)
Например, однажды я использовал inotify (для мониторинга событий файловой системы).Этот API дает вам возможность создавать неблокирующий файл с первой точки, и нет необходимости использовать fcntl или такие API для изменения дескриптора созданного файла.
Возможно, другие инструменты или API, которые вы собираетесь использоватьу вас есть такая функциональность, и вы можете установить такую опцию в их инициации или в таких шагах (сначала проверьте это).
Но обычно да, использование fcntl - это ответ, и было бы интересно знать, что само inotify тоже использует fcntl.(см. справочные страницы Linux)
select () может предоставить вам ту же функциональность, что и дескрипторы файлов для мониторинга событий с заданным ограниченным временем, но имейте в виду, что основное использование select предназначено длямониторинг несколько файловых дескрипторов.