datei binär öffnen
-
Hallo,
ich möchte
ofstream testOfstream eine Datei "C:/test/test.doc"
nur dann öffnen wenn sie nicht bereits geöffnet ist
Alsoofsteram testerOfstream();//also was muss inder Klammer rein if (!testerOfstream.is_open()) ...;Mein Problem ist wenn ich in der Klammer (ersteZeile) etwas eintrage dann öffnet sich die Datei ja automatisch
Also sozusagen möchte ich testOfstream einer datei zuweisen, ohne diese zu öffnen
-
borhan schrieb:
Hallo,
ich möchte
ofstream testOfstream eine Datei "C:/test/test.doc"
nur dann öffnen wenn sie nicht bereits geöffnet ist
Alsoofsteram testerOfstream();//also was muss inder Klammer rein if (!testerOfstream.is_open()) ...;Das tut nicht das was du gern möchtest. is_open sagt dir nur ob der Stream die datei bereits geöffnet hat, nicht ob irgendwer sie bereits geöffnet hat.
Ob die Datei bereits an anderer Stelle geöffnet wurde kann afaik mit standardmitteln nicht herausgefunden werden, aber evtl. hat boost::filesystem entsprechende Funktionalität (auf Systemen, die überhaupt solche Informationen preisgeben).
-
pumuckl schrieb:
Ob die Datei bereits an anderer Stelle geöffnet wurde kann afaik mit standardmitteln nicht herausgefunden werden, aber evtl. hat boost::filesystem entsprechende Funktionalität (auf Systemen, die überhaupt solche Informationen preisgeben).
Hmm. Man könnte vielleicht probieren in die Datei zu schreiben. Das sollte dann einen Fehler geben, den man abfangen kann und dann weiss man, dass die Datei offen ist. (sofern andere Fehler ausgeschlossen werden können.)
-
drakon schrieb:
(sofern andere Fehler ausgeschlossen werden können.)
mir würde aber auf anhieb ein fehler einfallen: kein speicherplatz mehr verfügbar -> man darf nicht schreiben -> keine diagnose möglich...
bb
-
unskilled schrieb:
drakon schrieb:
(sofern andere Fehler ausgeschlossen werden können.)
mir würde aber auf anhieb ein fehler einfallen: kein speicherplatz mehr verfügbar -> man darf nicht schreiben -> keine diagnose möglich...
bb
Naja.. Ich bin mal davon ausgegangen, dass solche exotischen Fehler nicht vorkommen..
(Aber wenn man alleine schon z.B keine Leserechte auf ein File hat.. dann hat man schon vorher ein Problem). War ja nur so als kleinen Hack gedacht. Besser ist es natürlich schon eine spezielle Library zu benutzen, oder halt ggf. Betriebssystem spezifsche Funktionen.
-
drakon schrieb:
unskilled schrieb:
mir würde aber auf anhieb ein fehler einfallen: kein speicherplatz mehr verfügbar -> man darf nicht schreiben -> keine diagnose möglich...
Naja.. Ich bin mal davon ausgegangen, dass solche exotischen Fehler nicht vorkommen..

Naja - mein Windows hat mir neulich mal C: blockiert, weil ich nur noch paar 100MB frei hatte... damit konnte ich nicht mal mehr nen header-file in meinem projekt speichern - all zu exotisch ist es also gar nicht^^
aber ansonsten hast du natürlich recht ;o)bb