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));
}
}