Piszę funkcję w C++, która tworzy tymczasowy katalog. Taka funkcja powinna być jak najbardziej przenośna, jak to możliwe, np. powinien działać w środowiskach linux, mac i win32. Jak to osiągnąć?Jak utworzyć tymczasowy katalog w C++?
Odpowiedz
mkdtemp(char *template)
http://www.cl.cam.ac.uk/cgi-bin/manpage?3+mkdtemp
Tworzy katalog tymczasowy.
Podążyłem za twoim linkiem do dokumentacji. Opisuje tylko sposób tworzenia pliku tymczasowego. Pytano o to, jak utworzyć katalog tymczasowy. –
@ ErikSjölund masz rację, połączyłem złe polecenie. –
Nie ma standardowej funkcji, aby to zrobić, więc musisz skompilować różne implementacje dla każdej platformy, na którą celujesz.
Na przykład w systemie Windows należy użyć katalogu temp, który można uzyskać, wywołując metodę GetTempPath().
Biblioteka systemu plików Boost zapewnia funkcje katalogowe niezależne od platformy. Zwiększy to nieco rozmiar programu, ale używanie Boost jest często lepsze (i często łatwiejsze) niż toczenie własne.
http://www.boost.org/doc/libs/1_43_0/libs/filesystem/doc/index.htm
Nie chcę wprowadzać zależności tylko dla zwiększenia że. – Gatis
Wersja 3 boost Filesystem Biblioteka udostępnia funkcję unique_path()
generowania ścieżkę odpowiednią dla utworzenia tymczasowego pliku lub katalogu.
using namespace boost::filesystem;
path ph = unique_path();
create_directories(ph);
- 1. Jak utworzyć tymczasowy plik tekstowy w C++?
- 2. Zmień katalog tymczasowy
- 3. Katalog tymczasowy pozostaje w obrębie przebiegów programu
- 4. Jak utworzyć plik tymczasowy w Erlangu?
- 5. C++ jak utworzyć katalog ze ścieżki
- 6. Jak utworzyć folder/katalog
- 7. Gdzie jest tymczasowy katalog/lokalizacja zaćmienia?
- 8. Jak utworzyć katalog w plunker?
- 9. Rekurencyjnie utworzyć katalog
- 10. Jak mogę utworzyć plik tymczasowy o określonym rozszerzeniu w bash?
- 11. Jak mogę utworzyć tymczasowy folder w java 6?
- 12. Zmień domyślny katalog tymczasowy do przesyłania plików PHP
- 13. Jak utworzyć katalog tmp w węźle bez kolizji
- 14. .NET uzyskać lokalny katalog tymczasowy dostępny dla wszystkich użytkowników
- 15. Katalog tymczasowy Carrierwave ustawiony na folder uploads/tmp
- 16. Gwarantowany czas życia tymczasowy w C++?
- 17. Jak utworzyć katalog, jeśli jest potrzebny?
- 18. W Perl, w jaki sposób bezpiecznie utworzyć tymczasowy FIFO?
- 19. Jak utworzyć plik o jeden katalog?
- 20. Jak utworzyć katalog z możliwością zapisu?
- 21. Jak utworzyć katalog, jeśli nie istnieje, aby utworzyć plik?
- 22. Jak utworzyć katalog w bieżącym katalogu roboczym, w języku Java
- 23. W jaki sposób określić katalog tymczasowy do przesyłania plików w Spring Boot?
- 24. Jak utworzyć plik tymczasowy w języku Java bez losowej liczby dołączonej do nazwy pliku?
- 25. obiekt tymczasowy w zakresie dla
- 26. Czy powinienem utworzyć tymczasowy ostream, używając innego strumienia?
- 27. Jak utworzyć Singleton w C?
- 28. Jak zaktualizować katalog w git
- 29. Katalog programu w Objective-C (OSX)
- 30. Jak ustawić katalog roboczy w "katalogu rozwiązań" w C++
Standardowy C++ nie ma funkcji manipulacji katalogami. –
Standard POSIX ma definicję. Wszystkie nowoczesne systemy operacyjne mają warstwę zgodną z POSIX (w tym Windows). Tak więc rodzina funkcji mktemp() jest tym, czego szukasz. Należy jednak uważać, że jest to luka w zabezpieczeniach polegająca na utworzeniu katalogu tymczasowego, a następnie umieszczeniu w nim plików. Bezpieczniej jest tworzyć bezpośrednio deskryptory plików. –
Co powiesz na getenv() przekazujący "TMP"? – Gatis