herch Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 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! Zitieren
Cool-Matthias Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 Ich hoffe ich hab dich jetzt richtig verstanden. char* pText = "cls"; system(pText); Meintest du das? Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 Dachte eher an sowas: char* pText = "pub"; system("cd" pText); Geht das so??? Habs noch nicht ausprobiert! Zitieren
Goos Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 Das muss dann eher so ausschaun: char ges[20] = "cd"; char *pText = " pub"; system(strcat(ges, pText)); [/PHP] Goos Zitieren
Klotzkopp Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 Oder so: char szCommand[40]; char* pszOrdner = "pub"; sprintf( szCommand, "cd %s", pszOrdner ); system( szCommand ); Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 Hat mir geholfen, vielen Dank an alle! Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 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!!!!!! Zitieren
Goos Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 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 Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 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 Zitieren
nic_power Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 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 Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 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: Zitieren
nic_power Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 chdir() ist ein systemcall, der nicht ueber eine Shell ausgefuehrt wird sondern direkt von Deinem Programm. D.h. Dein Programm "wechselt" das Verzeichnis. Nic Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 Habs endlich gerafft! Gott sei dank.. Wochenende lol :cool: :WD :OD :bimei :marine Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.