ein Kapitel zurück                                           ein Kapitel weiter

getcwd benötigen sie um den Namen des Working-Directory zu ermitteln. Hier der Syntax von getcwd...

#include <unistd.h>    //Linux/Unix
#include <dir.h>       //MS-Dos/WIN

char *getcwd(char *puffer, int puffergrösse);

Die Funktion schreibt an die Speicheradresse puffer den Pfadnamen des Working-Directory mit Abschließenden '\0'. Die Größe des Puffers teilen sie mit puffergrösse mit. Die Funktion gibt bei Erfolg den Pfadnamen des Working-Directory an puffer zurück und bei Fehler NULL. Hier ein Beispiel wie man diese Funktion einsetzt.....

/*Download:getcwd1.c*/
#ifdef __unix__ #include <unistd.h> #else #include <dir.h> #endif #include <stdio.h> #include <stdlib.h> int main() { char puffer[200]; if(getcwd(puffer,sizeof(puffer)) == NULL) { fprintf(stderr,"Fehler bei getcwd...\n"); exit (1); } printf("Working-Directory : %s\n",puffer); return 0; }

Für Linux/Unix gilt noch: Wechselt man in ein Directory das ein symbolischer Link auf ein anderes Directory ist, so wird in das Directory gewechselt auf das der symb. Link zeigt.

Ein praktisches Beispiel wäre unter Linux zum Beispiel...

Wir haben uns in irgendeinem Verzeichnis verirrt und wollen wieder zurück ins Home-Verzeichnis wechseln, haben aber den Namen vergessen da wir ein DAU sind.
Welches das ist können sie herausfinden mit der Eingabe von env (Environment) oder mit der C-Funktion getenv("HOME").....

/*Download:getcwd2.c*/
#ifdef __unix__ #include <unistd.h> #else #include <dir.h> #endif #include <stdio.h> #include <stdlib.h> int main() { char puffer[200]; char home[200]; /*Das Heimatverzeichnis nach home*/ strcpy(home,getenv("HOME")); /*Working Directory lesen*/ if(getcwd(puffer,sizeof(puffer)) == NULL) { fprintf(stderr,"Fehler bei getcwd...\n"); exit (1); } /*Sind wir schon im Heimatsverzeichnis?*/ if(strcmp(home,puffer) == 0) printf("Wir sind daheim : %s\n",puffer); else{ /*Nicht! dann wechseln wir in Heimatvereichnis*/ chdir(home); /*Der Beweis*/ printf("Nun sind wir daheim : %s \n",getcwd(puffer,sizeof(puffer))); } return 0; }

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf