Warum mag die GCC StdLib ios::app nicht?



  • N'abend,

    ist, vorhandene und zugreifbare Datei vorausgesetzt, an dieser Zeile was nicht in Ordnung?

    File.open("dateiname", ios::in|ios::out|ios::binary|ios::app);
    

    File ist vom Typ fstream.

    Die mit VC++ kompilierte .exe oeffnet die Datei erfolgreich,
    aber unter MacOS macht er es nur, wenn ich das ios::app weglasse.
    (GCC-3.3 und GCC-4.0)

    Kann dann zwar den Filepointer später setzen, seh´s aber nicht ein, denn
    es heißt ja in der Doku zu den Optionen

    The flag values can be any combination...

    Was hab ich übersehen?



  • Ohne genauer drüber nachgedacht zu haben:
    Standard Seite 659, Tabelle 92 erlaubt die Kombination nicht und sagt, dass bei einer ungültigen Kombination open fehlschlägt.

    Meines Wissens auch überflüssig, denn in|out mach kein truncate und hat daher dieselbe Wirkung wie das app. (Das ist vermutlich auch die Interpretation von VC)

    Zumindest unterstützt obige Tabelle diese Interpretation, da in|out auf r+ (bei fopen) abgebildet wird und das macht definitiv kein truncate.



  • Danke.


Anmelden zum Antworten