2012-12-19 4 views
5

Ich bin in der Mitte einig ziemlich alten C++ Code zu fixieren, den die alten Stil iostream-Bibliothek verwendet, und ich kam in den folgenden nicht-Kompilierung Codezeilen:Wofür war filebuf :: openprot gedacht, und hat es einen Ersatz?

::ofstream ofile; 
ofile.open("filename", ios::trunc, filebuf::openprot); 

ich diesen Fehler:

error C2039: 'openprot' : is not a member of 'std::basic_filebuf<_Elem,_Traits>' 

So offensichtlich ist es etwas, das nicht mehr da ist. Das Problem ist, ich kann keine Informationen darüber finden, was openprot als Parameter getan hat, und ich kann es daher nicht durch etwas Neues ersetzen, und ich habe Angst, den Parameter insgesamt zu entfernen.

Jeder mit historischen C++ - Kenntnisse wissen, was dieses Ding getan hat?

Antwort

6

Dieser Parameter gibt/den Schutzmodus angezeigt mit der Datei zu öffnen. Es zeigt sich in dieser IBM Legacy Class Library Reference.

filebuf::openprot ist/das Standardargument für die fstream Familie Bauer war und openprot Funktionen Parameter, der die Datei welchen Schutzmodus anzeigt sollte geöffnet/erstellt werden.

The default protection mode used when opening files.

Zum Beispiel auf Ihrem System könnte es 0644 sein, was bedeutet, dass , wenn die Datei erstellt wird, wird der Eigentümer Lese-/Schreibberechtigungen haben, und alle anderen schreibgeschützt haben werden.

Da in Ihrem Fall das Standardargument sowieso übergeben wurde, würde ich sagen, dass es sicher ist, es einfach zu entfernen.

+0

Vielen Dank für die Info. Ich habe den Parameter entfernt. – Archimaredes

4

Nach the Visual Studio 6.0 documentation, openprot nutzt die Standard-Betriebssystem:

The file protection specification; defaults to the static integer filebuf::openprot , which is equivalent to the operating system default (filebuf::sh_compat for MS-DOS).

Verwandte Themen