На моей машине ulimit -a
показывает 1024 для максимально открытых файлов.1022 действительно близко к этому пределу.
У вас есть код, который пытается открыть файл и не работает?Вероятно, это какой-то другой системный вызов, который устанавливает errno в значение EMFILE.
Убедитесь, что вы обрабатываете возвращаемые значения из кода, открывающего fds.
Убедитесь, что вы не пропускаете файловые дескрипторы где-нибудь.
Если этот код запускается с соответствующими привилегиями, вы можете попробовать увеличить максимальное число открытых файлов с помощью ulimit -n
или setrlimit()
.