Ho una directory con circa 100.000 file al suo interno. ls -f si blocca per oltre un minuto. Ho corso strace e ho subito iniziato a vedere getdents, quindi sta leggendo chiaramente la directory. Vedo anche molte chiamate a vantarsi, quindi è chiaramente buffering cose in memoria. Ho scritto un semplice programma che chiama readdir e genera nomi di file e risponde immediatamente. Ma ls -f non fornisce output. Cosa dà? Ho pensato che il punto di -f è che non fa altro che readdir. Esiste un modo portatile e affidabile per elencare il contenuto di una directory? (Nota, questo è ls dai coreutils di GNU su Linux.)
-MODIFICARE-
Era presente un alias, ma "/ bin / ls -1f> / dev / null" richiede da 8 a 15 secondi, "/ bin / ls -1fx> / dev / null" richiede da 4 a 11 secondi, ma un semplice programma che fa readdir richiede 0,011 secondi. Cosa devo fare per fare in modo che non faccia schifo?