Ubuntun käyttö > Ohjelmointi, palvelimet ja muu edistyneempi käyttö |
[Ratkaistu]Kuinka luodaan tmp-hakemisto C++:lla ? |
(1/2) > >> |
kamara:
Olen yrittänyt käyttää seuraavaa käskyä, mutta se ei luo temppi-kansiota. :'( --- Koodia: ---#include <stdlib.h> #include <iostream> #include <cstring> int main(int argc,char **argv) { char *tmppi=(char *)malloc(500); char *tmpPath; strcpy(tmppi,"/tmp"); tmpPath=mkdtemp(tmppi); if(tmpPath==NULL) { std::cerr << "tmpPath=NULL\n"; } else { std::cerr << "tmpPath=" << tmpPath << "\n\n"; } } --- Koodi päättyy --- Tämä palauttaa erroriin NULL:n, kun haluaisin luoda väliaikaishakemiston. |
kamara:
Löytyi ratkaisu ! Kiitos avusta... --- Koodia: ---#include <stdlib.h> #include <iostream> #include <cstring> int main(int argc,char **argv) { char *tmppi=(char *)malloc(500); char *tmpPath; strcpy(tmppi,"OmatemppiXXXXXX"); std::cerr << tmppi << "\n"; tmpPath=mkdtemp(tmppi); if(tmpPath==NULL) { std::cerr << "tmpPath=NULL\n"; } else { std::cerr << "tmpPath=" << tmpPath << "\n\n"; } } --- Koodi päättyy --- Elikkäs tarvitaan tiedostonnimiin XXX:iä loppuun, jotka temppigeneraattori muuttaa yksilölliseksi hakemistoksi. |
_Pete_:
Voi käyttää myös c++ kirjaston valmista toimintaa: https://en.cppreference.com/w/cpp/io/c/tmpfile |
kamara:
--- Lainaus käyttäjältä: _Pete_ - 22.02.24 - klo:14.23 ---Voi käyttää myös c++ kirjaston valmista toimintaa: https://en.cppreference.com/w/cpp/io/c/tmpfile --- Lainaus päättyy --- Enkös minä juuri niin tehnyt ? |
nm:
--- Lainaus käyttäjältä: kamara - 22.02.24 - klo:20.23 --- --- Lainaus käyttäjältä: _Pete_ - 22.02.24 - klo:14.23 ---Voi käyttää myös c++ kirjaston valmista toimintaa: https://en.cppreference.com/w/cpp/io/c/tmpfile --- Lainaus päättyy --- Enkös minä juuri niin tehnyt ? --- Lainaus päättyy --- mkdtemp on POSIX-standardin mukainen C-funktio. Se vaatii siis C-tyyppisten merkkijonojen pyörittelyä. C++:n standardikirjastoissa ei kuitenkaan ole suoraan vastaavaa mekanismia, jolla voisi luoda uniikisti ja rististiriidattomasti nimetyn väliaikaishakemiston. Sen sijaan väliaikaistiedoston voi luoda Peten ehdottamalla std::tmpfile-funktiolla. Jos tarvitset nimenomaan hakemiston, käyttämäsi C-funktio mkdtemp on siihen suoraviivaisin ratkaisu ainakin Linux/Unix-ympäristössä. |
Navigaatio |
Viestien etusivu |
Seuraava sivu |