Ogólnie chodzi mi o to, aby po znalezieniu jakiejkolwiek nazwy z tablicy "names" przerwać pętlę i nie szukać już dalej ;) Dlatego chciałem z tego 1 pętlę zrobić ...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <glob.h>
char **getFilenames()
{
char **filenames = NULL;
glob_t data;
unsigned int i;
switch( glob("./*.*", 0, NULL, &data ) )
{
case 0:
break;
case GLOB_NOSPACE:
printf( "Out of memory\n" );
break;
case GLOB_ABORTED:
printf( "Reading error\n" );
break;
case GLOB_NOMATCH:
printf( "No files found\n" );
break;
default:
break;
}
filenames = malloc(sizeof(char*)*data.gl_pathc+1);
for(i=0; i<data.gl_pathc; i++)
{
filenames[i] = strdup(data.gl_pathv[i]);
}
filenames[i] = NULL;
globfree( &data );
return filenames;
}
int main( int argc, char *argv[] )
{
const char *names[2] = {"./Untitled2.c", "./Untitled1.c"};
char **filenames = getFilenames();
char *filename;
unsigned int i = 0, j = 0;
for(i=0; filenames[i] != NULL; i++)
{
for(j=0; j<2; j++)
{
if(!strcmp(filenames[i], names[j]))
{
printf("%s\n", names[j]);
break;
}
}
}
/*for(i=0; filenames[i] != NULL; i++)
{
printf("%s\n", filenames[i]);
}*/
for(i=0; filenames[i] != NULL; i++)
{
free(filenames[i]);
}
return 0;
}