Ich schreibe eine Funktion in C++, die ein temporäres Verzeichnis erstellt. Eine solche Funktion sollte so portabel wie möglich sein, z. Es sollte unter Linux, Mac und Win32-Umgebungen funktionieren. Wie erreiche ich das?Wie erstellt man ein temporäres Verzeichnis in C++?
Antwort
mkdtemp(char *template)
http://www.cl.cam.ac.uk/cgi-bin/manpage?3+mkdtemp
Erstellt ein temporäres Verzeichnis.
Ich folgte Ihrem Dokumentationslink. Es beschreibt nur, wie eine temporäre Datei erstellt wird. Es wurde gefragt, wie ein temporäres Verzeichnis erstellt werden soll. –
@ ErikSjölund Sie sind richtig, ich habe den falschen Befehl verknüpft. –
Überprüfen Sie die mkdtemp
Funktion here.
Unter Windows gibt es das nicht, soweit ich weiß. :( –
Ich denke, Sie sind Schriftsteller ... Löschen ... –
gibt es keine plattformunabhängige Möglichkeit, es in Standard c/C++ zu tun, verwenden Sie GetTempPath und GetTempFileName unter Windows – Kane
Es gibt keine Standardfunktion, daher müssen Sie für jede Plattform, die Sie als Ziel haben, verschiedene Implementierungen kompilieren.
Unter Windows beispielsweise sollten Sie das temp-Verzeichnis verwenden, das durch einen Aufruf von GetTempPath() abgerufen werden kann.
Die Dateisystembibliothek von Boost bietet plattformunabhängige Verzeichnisfunktionen. Es wird Ihre Programmgröße etwas erhöhen, aber Boost ist oft besser (und oft einfacher) als das eigene zu rollen.
http://www.boost.org/doc/libs/1_43_0/libs/filesystem/doc/index.htm
Ich möchte keine Abhängigkeit auf Boost nur für einführen Das. – Gatis
Version 3 von Boost-Filesystem-Bibliothek bietet Funktion unique_path()
für einen Pfadnamen geeignet zum Erzeugen einer temporären Datei oder ein Verzeichnis zu erstellen.
using namespace boost::filesystem;
path ph = unique_path();
create_directories(ph);
- 1. Loggen in ein temporäres Verzeichnis plattformübergreifend
- 2. Erstellen Sie ein temporäres Verzeichnis in Haskell
- 3. Temporäres Verzeichnis ändern
- 4. Wie erstellt man ein Verzeichnis in Wix?
- 5. Wie erstellt man ein Verzeichnis, wenn nötig?
- 6. Wie erstellt man ein Verzeichnis im C-Verzeichnis von Windows7 in C# .Net
- 7. Wie erstellt man ein Verzeichnis mit StreamWriter?
- 8. Wie erstellt man ein verstecktes Verzeichnis?
- 9. Wie erstellt man ein Prüfungsprogramm in C++?
- 10. Spark Master füllen temporäres Verzeichnis
- 11. Was ist ein gutes temporäres Verzeichnis in ASP.NET?
- 12. Wie erstellt man ein Singleton in C?
- 13. Wie erstellt man ein virtuelles Verzeichnis in IIS7 für ASP.NET?
- 14. Sollte ein C++ temporäres konstant sein?
- 15. Wie erstellt man eine Datei ein Verzeichnis nach oben?
- 16. Wie erstellt man ein virtuelles Verzeichnis mit MSBuild Script?
- 17. Zugriff auf temporäres ASP-Verzeichnis über Code
- 18. PDF-Anlagen in Azure, Speicher oder temporäres Verzeichnis verwenden?
- 19. Wie erstellt man ein Verzeichnis und eine Datei in diesem Verzeichnis mit Phonegap-Datei API?
- 20. Wie wird ein Test-Verzeichnis erstellt?
- 21. Wie man ein neues Projekt erstellt und es in ein virtuelles Verzeichnis einer bestehenden Site einfügt?
- 22. Wie erstellt man in C# ein Mix-In-Architektur-Framework?
- 23. Wie man ein Unterschriftsfeld in LaTeX erstellt
- 24. Wie erstellt man ein einfaches Popup-Fenster in Visual C#?
- 25. Wie erstellt man ein Array mit Polymorphismus in C++?
- 26. Wie erstellt man ein C# -Plug-in-Framework?
- 27. Wie erstellt man ein Array mit Referenz-Member in C++?
- 28. Wie erstellt man ein Strategie-Pattern in Objective-C?
- 29. Wie erstellt man ein zufälliges Float in Objective-C?
- 30. Wie erstellt man ein Textfeld in Visual Studio mit C#?
Standard C++ hat keine Verzeichnismanipulationsfunktionen. –
Der POSIX-Standard hat eine Definition. Alle modernen Betriebssysteme verfügen über eine POSIX-Compliance-Schicht (einschließlich Windows). Also ist die mktemp() Familie der Funktionen, nach denen Sie suchen. Aber seien Sie vorsichtig, es ist eine Sicherheitslücke, ein temporäres Verzeichnis zu erstellen und dann Dateien darin zu platzieren. Es ist sicherer, Dateideskriptoren direkt zu erstellen. –
Was ist mit getenv() passiert "TMP"? – Gatis