listar e ler arquivos de um diretorio com c/c++

1. listar e ler arquivos de um diretorio com c/c++

LINER DE SOUZA SANTOS
linersantos

(usa Ubuntu)

Enviado em 03/06/2020 - 12:05h

Bom dia.
eu preciso listar e ler arquivos de um diretorio. Tentei o seguinte codigo:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>

#include <sys/stat.h>
#include <unistd.h>
#include <string.h>

#define null 0
void list_dir (void ) {
DIR *dir;
struct dirent *entry;
struct stat s;

//-------------------------------------------
// Find ONLY DIRECTORY
//-------------------------------------------
dir = opendir("./teste1");
for (;;) {
entry = readdir(dir);
if (!entry) break;

if (strcmp(entry->d_name, "."))
if (strcmp(entry->d_name, ".."))
//if ( stat(entry->d_name, &s) == 0 && S_ISDIR(s.st_mode) ) {
printf ("%s\n", entry->d_name);
FILE *p = fopen(entry->d_name,"rf");

fclose(p);
//}
}
closedir(dir);

//#endif // __linux__

}// list_dir ()


int main (void) {
list_dir ();
return 0;
}

Só que na hora de executar, ele exibe uma mensagem de erro:
Segmentation fault (core dumped)
Se eu tiro o FILE *p = fopen ... ele roda mas ai nao faz oq eu preciso que é ler e gravar os dados dos arquivos.
Desde já agradeço.


  


2. Re: listar e ler arquivos de um diretorio com c/c++

Berghetti
berghetti

(usa Debian)

Enviado em 04/06/2020 - 18:49h

Para testar se é um arquivo, deve usar a macro S_ISREG.

Da forma que está você está tentando abrir um diretório com fopen, e não um arquivo.

E esse modo "rf" do fopen, acho que não existe em? (Estou no celular, não dá pra checar agora)


3. Re: listar e ler arquivos de um diretorio com c/c++

Paulo
paulo1205

(usa Ubuntu)

Enviado em 04/06/2020 - 20:07h

Chega a exibir o nome de alguma coisa?

Se não chega, possivelmente a própria opendir() falhou. Tem certeza de que aquele nome é de um diretório?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


4. Re: listar e ler arquivos de um diretorio com c/c++

LINER DE SOUZA SANTOS
linersantos

(usa Ubuntu)

Enviado em 05/06/2020 - 08:27h

Ele exibe os nomes dos arquivos. Só não consigo abri-los.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts