Речь на самом деле о том что каталог это файл со строго определнной структурой, размер его известен значит система сразу знает сколько файло в в нем лежит (понятно что файлы в подкаталогах не учитываются).
Как ? Как получить число файлов ДО сканирования ?
Дамаю что переносимой будет только версия с readdir. А так можно покопаться в исходниках ядра, выяснить что возвращается как размер каталога, и поделить на размер структурной единицы. =)