
		paulo1205
		
		(usa Ubuntu)
		
		Enviado em 09/10/2012 - 18:51h 
		No shell, digite "man 3 glob".  Existe uma seção "EXAMPLE", que mostra como fazer, em C, exatamente a mesma coisa que o shell faz quando você digita "ls -l *.c ../*.c".
wordexp() também tem um exemplo na sua manpage.
opendir()/
readdir()/
closedir() não têm exemplos nas manpages do Linux (ao menos não na minha distribuição).  Essas funções, que são usadas internamente pelas outras duas acima, são usadas de modo como segue.
 #include <dirent.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
void lista_arquivos_pdf(const char *dirname){
  DIR *dir;
  struct dirent *dir_entry;
  int len;
  if((dir=opendir(dirname))!=NULL){
    while((dir_entry=readdir(DIR))!=NULL){
      len=strlen(dir_entry.d_name);
      /* Vê se os últimos quatro caracteres são ".pdf" */
      if(len>=4 && strcmp(dir_entry.d_name+len-4, ".pdf")==0)
        printf("%s/%s\n", dirname, dir_entry.d_name);
    }
    closedir(DIR);
  }
  else{
    fprintf(stderr, "Nao foi possível ler o diretorio %s: %s.\n", dirname, strerror(errno));
  }
}