C - komplette Dateipfade auslesen

Herakles

Profifragensteller
Moin!

Ich möchte unter C den Inhalt eines Verzeichnnisses auslesen. Hierbei ist es mir besonders wichtig, den vollen Dateinamen inklusive absolutem Pfad zu bekommen. Bisher habe ich dies hier in meinem Code:

Code:
int main() {
	FILE *toll;
	char *filename;

	filename=malloc(1024);
	toll = popen( "ls *.txt", "r" );
	while( fgets( filename, 1024, toll ) != NULL ) {
		printf("%s\n",filename);
	}
return 0;
}

Das gibt sowas zurück:


Was ich aber in der Ausgabe sehen möchte, ist das hier:

/home/herakles/versuche/test.txt

Hat jemand eine Idee, wie sich das realisieren lässt?

Danke im Voraus,
Herakles
 
getcwd(3)
und um diese popen+ls-Vergewaltigung zu beenden: readdir(3) bzw. glob(3), wenn es etwas mehr Komfort sein darf.
 
Ok, allerdings müsste ich mir damit dann den resultierenden string zusammenbasteln - geht, klar. Aber ich dachte eigentlich an eine elegantere Lösung, eine mit einem einzigen Kommando, ohne große Hexerei... :)

EDIT: Da war Tron fixer ;)
 
Die Standard-C-Kommandos sind auf jeden Fall effizienter als ein Shell-Kommandos wegzuforken. Ich dachte du suchst nach einer Quick'n'Dirty Lösung. Danach sieht es zumindest aus.
 
Back
Top