Moin,
ich habe bei meinen Anfängen in C zu Coden echte Verständnisprobleme.
Ich möchte den Inhalt eines Directorys auslesen und in eine Variable schreiben,
damit ich den Inhalt später weiterverwenden kann.
Ich habe bisher folgenden Code:
#include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <dirent.h> #include <unistd.h> #define MAX 255 int main () { DIR *dir; struct dirent *dirzeiger; char dirname[30]; char *dirinhalt[MAX]; char inhalt[MAX]; printf("Bitte das Verzeichnis angeben :\n"); scanf("%29s", dirname); /* Das Verzeichnis oeffnen */ if ( (dir = opendir(dirname)) == NULL ) { fprintf(stderr, "Fehler bei opendir ....\n"); exit (0); } else printf("Wir wechseln, zum Lesen, in das Verzeichnis : %s\n", dirname); /* Das komplette Verzeichnis auslesen */ while ( (dirzeiger = readdir (dir)) != NULL ) /* ignore . and .. */ if ( strcmp(dirzeiger->d_name, ".") && strcmp(dirzeiger->d_name, "..") ) { strcat(inhalt, dirzeiger->d_name); } printf("In dirinhalt steht jetzt:%s", inhalt); //printf ("%s\n", (*dirzeiger).d_name); /* Lesezeiger wieder schliessen */ if ( closedir(dir) == -1 ) printf ("Fehler beim schliessen von %s\n", dirname); return 0; }
Die Ausgabe ist schon etwas seltsam, alles ohne Leerzeichen.
Ich wäre sehr dankbar wenn mir jemand auf die Sprünge helfen könnte und mir sagt
wie ich das richtig hinbekomme.
MfG
sowatt