Me gustaría provocar una situación en la que no quede ningún descriptor de archivo.
He estado pensando en 2 posibilidades:
¿Como lo harias?
Puede limitar la cantidad de descriptores de archivos que un proceso puede abrir en Linux usando ulimit.
Ejecutar ulimit -n 3 antes de ejecutar su programa C debería hacer que sea un error abrir más archivos, ya que stdin, stdout y stderr ocupan los primeros 3 descriptores.
Un ejemplo:
$ ulimit -n 3 $ echo > /dev/null zsh: too many open files: /dev/nullEl propio proceso de shell intenta abrir /dev/null para redirigir stdout antes de cerrarlo allí, por lo que obtiene un error. Su programa C recibirá exactamente el mismo error la primera vez que llame a fopen , open , socket , etc. (o cualquier cosa que asigne un nuevo descriptor de archivo).