C ++ Filehandling: Unterschied zwischen ios: app und ios: ate?
Was ist der Unterschied zwischen ios::ate
und ios:app
beim schreiben in eine Datei.
Meiner Ansicht ios::app
gibt Ihnen die Fähigkeit, sich zu bewegen in der Datei, in der Erwägung, dass mit ios::ate
es kann nur Lesen/schreiben am Ende der Datei. Ist das richtig?
InformationsquelleAutor der Frage Adam_G | 2012-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es die andere Weise herum. Wenn
ios::ate
gesetzt ist, wird die erste position wird am Ende der Datei, aber Sie sind frei, danach zu suchen. Wennios::app
eingestellt ist, alle Ausgabe-Operationen durchgeführt, am Ende der Datei. Da alle schreibt, sind implizit vorangestellt will, es keine Möglichkeit gibt, zu schreiben anderswo.InformationsquelleAutor der Antwort Jon Purdy
Werden Sie wie folgt angegeben (in 27.5.3.1.4 von C++11):
Mit
ios::app
die Schreibposition in der Datei "sticky" - alle schreibt, sind am Ende, egal, wo Sie suchen.InformationsquelleAutor der Antwort Steve Jessop
Es ist ziemlich gut dokumentiert hier.
ios::ate
"setzt der stream - Positionszeiger auf das Ende des Streams beim öffnen."ios:app
"stellen Sie die stream-position Indikator, um das Ende des Streams vor jeder Ausgabe-operation."Dies bedeutet der Unterschied, dass
ios::ate
stellt Ihre position an das Ende der Datei, wenn Sie es öffnen.ios::app
stattdessen setzt es an das Ende der Datei jedes mal, wenn Sie Spülen Sie den stream. Wenn Sie zum Beispiel zwei Programme, die schreiben in die gleiche Protokolldateiios:ate
überschreibt alles, was Hinzugefügt wurde, wird die Datei durch das andere Programm da Ihr Programm eröffneten.ios:app
stattdessen springen Sie an das Ende der Datei jedes mal, wenn Ihr programm fügt einen log-Eintrag.InformationsquelleAutor der Antwort Haatschii
App:
Ate:
InformationsquelleAutor der Antwort naveen
Den
ios::ate
option für die Eingabe-und Ausgabe-Operationen undios::app
erlaubt uns das hinzufügen von Daten an das Ende der Datei.InformationsquelleAutor der Antwort toijam sonalika devi