Originariamente inviato da /dev/null
Il motivo dell'errore e' sempre lo stesso allora: ci sono troppi file descriptors aperti...
Prova a reimplementare il ciclo senza usare la ricorsione: se usa quella apre migliaia e migliaia di files ed alla fine il kernel gli invia un bel segnale d'errore...

Fai una prova cosi': tieni una variabile globale che inizializzi a 0...
Poi, ogni volta che apri un nuovo file/directory incrimenti tale var e la decrementi quando chiudi un file/directory...
Ogni ciclata della funzione stampa questa variabile e guarda che valore ha prima che il programma termini...
Se quella var ha un valore troppo grande l'errore e' sicuramente questo


good idea !