Seite 1 von 1

chdir in C *HILFE*

Verfasst: Mo Aug 11, 2014 12:23 pm
von Daniel200289
Hey, kann mir jemand bei einem Problem in C helfen?

Folgendes soll passieren:
ich möchte ein Verzeichnis in einem Programm wechseln. Es soll in das vorhandene Verzeichnis "neu" gewechselt werden und danach der aktuelle Pfad ausgegeben werden. Soweit kein Problem:

Code: Alles auswählen

int main(void) {
	
       char *ein ="neu";
       
       chdir(ein);
       
       getcwd(pfad, 256);
       printf(pfad);
       printf(" $ ");
       
       }
Nun will ich den Code so umschreiben, dass mit Hilfe der Eingabe "cd neu" in das Verzeichnis gewechselt werden soll. Dazu will ich vom Eingabestring das cd abschneiden, damit mein Programm ins Verzeichnis "neu" wechselt. Dies tut es aber nicht. Vielleicht findet ihr den Fehler. Hier mein Code:

Code: Alles auswählen

char eingabe[256];
	fgets(eingabe,sizeof(eingabe),stdin);
	
	
	 
	 
	 char *teil_str;

	 teil_str = strtok(eingabe, " ");

		teil_str = strtok(NULL, " ");          //in teil_str steht jetzt nur noch "neu"
		
		//printf("%s", teil_str);
		
		chdir(teil_str); 
	
	   
	   
	getcwd(pfad, 256);
       printf(pfad);
       printf(" $ ");                // nach der erneuten Pfadausgabe ist der Pfad leider der selbe wie am Anfang
}
Danke schon mal für eure Hilfe.

Edit by cloidnerux: Code-Tags

Re: chdir in C *HILFE*

Verfasst: Mo Aug 11, 2014 1:06 pm
von oenone
Am Ende der Eingabe ist noch ein Zeilenumbruch. Der Rückgabewert von chdir() hätte dir gezeigt, dass es auf einen nicht vorhandenen Pfad zugreifen will (errno == ENOENT - The file does not exist.) "neu\n" gibt es nicht.

Am Besten nach fgets:

Code: Alles auswählen

if (eingabe[strlen(eingabe)-1] == '\n') {
   eingabe[strlen(eingabe)-1] = 0;
}
Ach ja, benutz bitte die code-Tags für Code postings.

Wenn du zum Debuggen das komplette Token ausgeben willst, schreib dir am Besten vor und nach dem Token noch ein Zeichen hin, z.B.:

Code: Alles auswählen

printf("pfad: >%s<\n",teil_str);
Dann siehst du gleich, ob im String noch "unsichtbare" Zeichen vorhanden sind.

Re: chdir in C *HILFE*

Verfasst: Di Aug 12, 2014 11:39 am
von Daniel200289
Danke für die schnelle Hilfe, klappt jetzt wunderbar =)