ntor
0
Hey Leute!
Ich stehe vor ein paar Fragen/Problemen für die ich keine Erklärung finde.
1.) In meinem Suchprogramm habe ich die Option , statt Dateien alá X:\... anzuben auch die Option einen Befehl zu durchsuchen. Ich hab das jetzt einfach mit einer temporären Datei gemacht. Wenn ich die temporäre Datei aber mit CreateProcess() erstellen/füllen will , dann schlägt das Programm immer mit EC=2 fehl ("The system cannot find the file specified"). Ich hab das Kommando auch einmal alleine ausgeführt. Funktioniert! Momentan überbrücke ich das einfach mit system() , was mich aber nicht ganz zufrieden stellt. Wobei auszuschließen ist , dass ich Code-Fehler habe , da selbst das Originale msdn-Beispiel gleich missschlägt.
2.) Das zweite Problem besteht darin , dass ich meine Kommandos z.B. in der Form --command:"dir \" übergebe. Da C/C++ aber anscheinend argv mit sprintf() füllt wird aus "dir \" nicht dir \ , sondern dir ". Und spätestes dann wird es schwierig zurückzuverfolgen , wenn man z.b. "dir C:\dings\xFF" angibt. Ich will mich auch nicht zufriedengeben , alles mit '\\' zu schreiben. Gibt es da einen Weg die Formtierung zu deaktivieren?
Herzliche Grüße
nt0r
PS: Wie kann man sein Programm dazu bringen Output eines Programms zu durchsuchen in Form von "strings |myfind "Fail!"" ? Bzw. Woher würde das Programm wissen , dass es mit einem Pipe aufgerufen wurde? Oder sind das nur Betriebssystespezifische Befehle?
Ich stehe vor ein paar Fragen/Problemen für die ich keine Erklärung finde.
1.) In meinem Suchprogramm habe ich die Option , statt Dateien alá X:\... anzuben auch die Option einen Befehl zu durchsuchen. Ich hab das jetzt einfach mit einer temporären Datei gemacht. Wenn ich die temporäre Datei aber mit CreateProcess() erstellen/füllen will , dann schlägt das Programm immer mit EC=2 fehl ("The system cannot find the file specified"). Ich hab das Kommando auch einmal alleine ausgeführt. Funktioniert! Momentan überbrücke ich das einfach mit system() , was mich aber nicht ganz zufrieden stellt. Wobei auszuschließen ist , dass ich Code-Fehler habe , da selbst das Originale msdn-Beispiel gleich missschlägt.
2.) Das zweite Problem besteht darin , dass ich meine Kommandos z.B. in der Form --command:"dir \" übergebe. Da C/C++ aber anscheinend argv mit sprintf() füllt wird aus "dir \" nicht dir \ , sondern dir ". Und spätestes dann wird es schwierig zurückzuverfolgen , wenn man z.b. "dir C:\dings\xFF" angibt. Ich will mich auch nicht zufriedengeben , alles mit '\\' zu schreiben. Gibt es da einen Weg die Formtierung zu deaktivieren?
Herzliche Grüße
nt0r
PS: Wie kann man sein Programm dazu bringen Output eines Programms zu durchsuchen in Form von "strings |myfind "Fail!"" ? Bzw. Woher würde das Programm wissen , dass es mit einem Pipe aufgerufen wurde? Oder sind das nur Betriebssystespezifische Befehle?