Глоб твой друг
Функция glob () ищет все пути, соответствующие шаблону, в соответствии с правилами, используемыми оболочкой
/* Sample Code */
#include <glob.h>
glob_t data;
glob("*", 0, NULL, &data ); /* Here "*" says to match all files of the current dir */
for(int i=0; i<data.gl_pathc; i++)
{
/* Printing all the path names,Just for illustration */
printf( "%s\n", data.gl_pathv[i] );
}
/* To split into DIRINFO and FILEINFO, stat(2) should be made use of */
globfree( &data ); /* free the data structure */
Для получения более подробной информации вы всегда можете использовать Unix man page
человек глобус