Искать элементы в директории
#include <sys/types.h>#include <dirent.h>int scandir( char *dirname,struct dirent * (*namelist[]),int (*select)( struct dirent * ),int (*compar)( const void *, const void * ) );
NULL
, включаются все записи каталога.NULL
, массив не сортируется. Можно использовать alphasort() в качестве параметра сравнения для сортировки массива по алфавиту.libc
Функция scandir() читает каталог dirname и создает массив указателей на записи каталога, используя malloc() для выделения памяти. Функция возвращает количество записей в массиве и сохраняет указатель на массив по адресу namelist.
Вы можете освободить память, выделенную для массива, вызвав free(). Освободите каждый указатель в массиве, а затем освободите сам массив.
Количество записей в массиве или -1
, если каталог не может быть открыт для чтения, или malloc() не может выделить достаточно памяти для хранения всех структур данных.
Legacy Unix
struct dirent, alphasort(), closedir(), free(), malloc(), opendir(), qsort(), readdir(), rewinddir(), seekdir(), telldir()
Предыдущий раздел: Описание API системной библиотеки