Você provavelmente está atingindo o limite de nofile, que é por padrão 1024.
Tente aumentar o ulimit -n no seu shell antes de executar o programa, como:
$ ulimit -n 20480; ./myprogram
Claro, você precisa ter um privilégio para aumentar o limite de nofile tão alto, portanto, verifique os limites atuais de soft e hard com:
$ ulimit -a
E crie-os em /etc/security/limits.conf ou em /etc/security/limits.d/*conf