Konsolenausgabe von chdir unterdrücken...
-
Hallo,
kurz zur Situation: Bei meinem C-Pprogramm (Win32-Konsolenanwendung) liegen die Inputdaten in einem von der *.exe unabhängigen Arbeitsverzeichnis (..\av\). Die Outputdaten sollen nun in ein Unterverzeichnis (..\av\output\). Das Outputverzeichnis erstelle ich mit dem chdir-Befehl. Abhängig von dessem Return (0=vorhanden | 1=nicht vorhanden) wird entweder der Inhalt gelöscht oder das Verzeichnis erstellt. Geschrieben wird dann mit fopen(). Funktioniert auch.
Mein Problem: Wie kann ich (für den Fall, dass das Verzeichnis nicht existiert) die Fehlermeldung "Das System kann den angegebenen Pfad nicht finden" unterdrücken??
Die "Lösung" aus einem anderen Forum, näml eine Ausgabeumleitung mit angehängtem "> NUL" beim Systemcall, war leider nicht erfolgreich.
Oder gibt es generell eine andere Möglichkeit zu überprüfen, ob ein Ordner existiert oder nicht?? (bitte nur für C Win32)
-
Ich glaube du meinst keine Konsolenanwendung sondern eine Art BAT-Datei oder Shell-Script, oder? Ich verschieb' dich mal ins dementsprechende Forum.
MfG SideWinder
-
Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum Themen rund um den PC verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
chdir <non-existent-directory> 2>> NUL
2>> verbiegt die Fehlerausgabe
MfG SideWinder
-
_access( , , );
http://msdn.microsoft.com/en-us/library/1w06ktdy(v=VS.100).aspxUnd noch was. chdir() ist nicht zum Verzeichnisse erstellen sondern um das Verzeichnis zu wechseln!!
-
Es reicht auch ein 2>NUL, das doppelte > ist nicht nötig. Zur Erklärung: Mit 2 ist der STDERR-Stream gemeint, 1 (default) ist STDOUT.
-
ipsec schrieb:
Es reicht auch ein 2>NUL, das doppelte > ist nicht nötig. Zur Erklärung: Mit 2 ist der STDERR-Stream gemeint, 1 (default) ist STDOUT.
Dachte ich auch - hat bei mir (Win7 64bit) nicht funktioniert.
MfG SideWinder
-
Hm bei mir (Win7 64bit) gehts. Wichtig ist noch, dass zwischen der 2 und dem > kein Leerzeichen ist.
-
wow. perfekt. und dann noch so schnell!!
der tipp mit dem "2>> NUL" (bzw. "2> NUL") war exakt das, wonach ich gesucht habe!
vielen dank!