2016-10-30 3 views
1

finden Sie das CodebeispielWarum Datei nicht im Verzeichnis/etc/erstellt

void createFile(const std::string& FileName, const std::string& Content) 
{ 
    ofstream of(FileName.c_str()); 
    of<<Content; 
    of.close(); 
} 
const std::string testFile = "/etc/testFile"; 
const std::string EmptyContent = ""; 
createFile(testFile, EmptyContent); 

Datei ist nicht in/etc/Verzeichnis erstellen. Ich denke, das hängt mit Berechtigungen zusammen. Was muss ich hinzufügen, um den Code zu verwenden?

+0

* Ich denke, dass dies mit Berechtigungen verbunden ist. * => Erhalten Sie einen Fehler bei der Ausführung des Programms? Und wenn du es tust, was ist das? Wenn Sie nicht ... möchten Sie vielleicht lesen, wie Stream-Fehler behandelt werden. –

Antwort

4

Es gibt nichts Zusätzliches, das Sie zu diesem Programm hinzufügen können, um "es zum Laufen zu bringen". Wenn ein beliebiges Programm in /etc schreiben kann, würde dies das traditionelle POSIX-Sicherheitsmodell aus dem Fenster werfen.

Um in /etc schreiben zu können, muss Ihr Programm als root ausgeführt werden.

1

Es scheint ein Berechtigungsproblem zu sein. Versuchen Sie, Ihr Programm unter Verwendung von sudo auszuführen:

Verwandte Themen