Festlegen von Datei-Berechtigungen beim öffnen einer Datei mit ofstream

Gibt es eine Möglichkeit in C++ - standard-Bibliotheken (oder linux sys/stat.h, sys/types.h, sys/.... Bibliotheken), um den Datei-Berechtigungen für eine Datei erstellen, wenn es mit ofstream (oder etwas anderes aus diesen Bibliotheken)?

Wenn ich eine Datei erstellen, es wird mit einigen Standard-Satz von Datei-Berechtigungen (ich nehme auch immer den aktuellen umask ist), aber ich möchte explizit die Berechtigungen setzen, um etwas anderes als die Standardeinstellung (ex. 600), und ich kann nicht setzen Sie einfach die umask vor dem starten des Programms (b/c, andere, die es ausgeführt wird).

//Example of creating a file by writing to it
ofstream fp(filename.c_str())

/* write something to it */

Gibt es eine Möglichkeit in C++ oder wenn nicht, eine Möglichkeit, die umask im C++ - Programm?

Beispielsweise in C standard-Bibliothek, die Sie kann nur tun:

open(filename, O_RDWR|O_CREAT, 0666)

aber ich will nicht zu greifen, um die Verwendung der C-Funktion, wie es wäre schön, in der Lage sein, um die Funktionen verwenden, die im Zusammenhang mit fstream Objekte.

(Randnotiz: es war ein Frage, dessen Titel war genau das, was ich gesucht hatte, aber es stellte sich heraus, um nichts zu tun.)

  • Nein, C++ ist nicht bekannt-Datei Berechtigungen. (Erstellen Sie zuerst die Datei über system, Funktion(en) und öffnen Sie die C++ - stream)
  • Meinst du etwas wie das öffnen der Datei mit C open - Funktion, schließen Sie, dass Datei-Deskriptor, dann öffnen Sie es wieder mit ofstream?
  • Es ist die experimentelle Filesystem-library TS
  • wer hätte geahnt? In 2015 haben wir uns schließlich klar, wir brauchen einen Weg, um erstellen oder Lesen Verzeichnis in C++ 🙂
InformationsquelleAutor xgord | 2015-11-05
Schreibe einen Kommentar