Mit der open () - Systemaufruf
Bin ich ein Programm schreiben, das schreibt die Ausgabe in eine Datei. Wenn diese Datei nicht existiert, erstellen Sie es.
Derzeit bin ich mit den folgenden flags beim Aufruf von "open":
O_WRONLY | O_CREATE
Jedoch, wenn dieser die Datei erstellt, ist es nicht geben mir keine Berechtigungen zum schreiben...
Wie kann ich auf öffnen, so dass es wird eine Datei erstellt wenn Sie nicht existiert, aber schaffen es mit den erforderlichen Berechtigungen, wenn Sie benötigt?
Dank!
InformationsquelleAutor samoz | 2009-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie wahrscheinlich das Dritte argument. Zum Beispiel:
Ich habe eine leichte Präferenz für @David die Nutzung der flag-Konstanten (S_IRUSR | S_IWUSER | S_IRGRP | S_IROTH) eher als hart codiert Dauerwellen, aber sonst eine gute Antwort.
Ja, seine Antwort ist besser. Mir ist lediglich eine schnelle Zeiger auf das Dritte argument (mein string ist auch nicht gültig!).
InformationsquelleAutor Randy Proctor
Verwenden Sie einfach die optionale Dritte argument
open
:also so aus:
Sehen
man open(2)
.man 2 open
.Es ist nicht
S_IWUSER
..seineS_IWUSR
S_IWUSR 00200 Benutzer hat Schreibrechte, Lesen Sie bitte man7.org/linux/man-pages/man2/open.2.html
InformationsquelleAutor David Z
Auf Linux gibt es ein drittes argument, das Sie verwenden können, um die pass-Berechtigungen. S_IWUSR sollte die Flagge, um Ihnen Berechtigungen zu schreiben, aber in der Praxis werden Sie wahrscheinlich wollen, um mehr Flaggen als nur, dass ein (Bitweises oder würde zusammen). Überprüfen Sie in der manpage eine Liste von permission-flags.
InformationsquelleAutor Dan Olson
Aus der Handbuch:
So scheint es, müssen Sie einen Dritten Parameter angeben Angabe der gewünschten Datei Berechtigungen.
InformationsquelleAutor David Hanak
Beachten Sie, dass unter POSIX (Unix, Linux, MacOS, etc) können Sie öffnen und erstellen Sie eine Datei mit allen Berechtigungen, die Sie wählen, einschließlich der 0 (keine Erlaubnis für jedermann), und doch noch in die Datei schreiben, wenn die zum schreiben geöffnet sind.
InformationsquelleAutor Jonathan Leffler