Saya punya direktori dengan sekitar 100.000 file di dalamnya. Jika hang lebih dari satu menit. Saya berlari strace, dan segera mulai melihat getdents, jadi ls jelas membaca direktori. Saya juga melihat banyak panggilan ke brk, jadi ls jelas buffering hal-hal di memori. Saya menulis sebuah program sederhana yang memanggil readdir dan menampilkan nama file, dan segera merespons. Tapi ls -f tidak memberikan output. Apa yang menyebabkannya? Saya pikir inti dari -f adalah menyebabkan ls tidak melakukan apa-apa selain readdir. Apakah ada cara yang portabel dan andal untuk membuat daftar isi direktori? (Catatan, ini adalah ls dari coreutils gnu di Linux.)
-EDIT-
Ada alias di tempat, tetapi "/ bin / ls -1f> / dev / null" membutuhkan waktu 8 hingga 15 detik, "/ bin / ls -1fx> / dev / null" membutuhkan 4 hingga 11 detik, tetapi sebuah program sederhana readdir hanya membutuhkan 0,011 detik. Apa yang harus saya lakukan untuk membuat gnu tidak mengisap?