Veröffentlicht 26. Juli 200223 j Habe folgendes Problem: Ich versuche nen Systemaufruf über C zu machen, Dies funktioniert ganz normal mit: system("cd pub"); system("more_beer"); Wie kann ich in diesem Befehl einen Sting verwenden damit ich die Befehle Variabel gestallten kann??? Danke!
26. Juli 200223 j Ich hoffe ich hab dich jetzt richtig verstanden. char* pText = "cls"; system(pText); Meintest du das?
26. Juli 200223 j Dachte eher an sowas: char* pText = "pub"; system("cd" pText); Geht das so??? Habs noch nicht ausprobiert!
26. Juli 200223 j Das muss dann eher so ausschaun: char ges[20] = "cd"; char *pText = " pub"; system(strcat(ges, pText)); [/PHP] Goos
26. Juli 200223 j Oder so: char szCommand[40]; char* pszOrdner = "pub"; sprintf( szCommand, "cd %s", pszOrdner ); system( szCommand );
26. Juli 200223 j ich weiß, ich nerv langsam, aber: wenn ich die Befehle so gestallte funktionieren sie zwar, aber wenn ich mit char szCommand[40]; char* pszOrdner = "Fisch"; sprintf( szCommand, "cd %s", pszOrdner ); system( szCommand ); system ("dir"); versuche ins Verzeichnis Pub zu gehen, funktioniert das nicht. Ich bin dann immer in dem Verzeichnis, wo meine compilierte exe liegt! D.h. Befehle führt er zwar aus (z.B. "md barkeeper") aber leider nur im Verzeichnis der exe! AAAAARRRRRGHHHHHH HELP ME!!!!!!
26. Juli 200223 j Ja genau so ist das Du musst halt zuerst mithilfe deiner System Kommandos zurueck auf deine Rootebene gehen, oder wohin auch immer du willst. ...ausserdem kommt man halt mit Fisch nicht ins Pub Verzeichnis *g* Goos
26. Juli 200223 j Aber wie komme ich wieder auf die root ebene wenn weder cd.. oder c: geht? Kann mir das jemand mal wie nem 3 Jährigen erklären? Bin heut echt zu blöd! ICH BRAUCH MAL URLAUB:( Danke
26. Juli 200223 j Das funktioniert nicht, da der aufruf "system()" eine Shell startet, um das Kommando auszufuehren. Nach dem Ausfuehren des Befehls terminiert diese shell wieder. "cd" ist aber ein Shell-builtin, d.h. Du wechselst nur in der durch "system()" gestarteten Shell das Verzeichnis. Du kannst den gewuenschten Effekt jedoch mit dem systemcall "chdir" erzielen. Nic
26. Juli 200223 j angenommen ich befinde im Verzeichnis Root wo auch meine exe datei liegt, dort erzeuge ich dann den Ordner Pub (kein Problem)! Wie aber soll das dann mit chdir gehen, das ich im Verzeichnis Pub den Ordner Keeper erstellen kann wenn immer wieder ne neue Shell gestartet wird? :eek:
26. Juli 200223 j chdir() ist ein systemcall, der nicht ueber eine Shell ausgefuehrt wird sondern direkt von Deinem Programm. D.h. Dein Programm "wechselt" das Verzeichnis. Nic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.