Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: kamara - 21.02.24 - klo:16.41
-
Olen yrittänyt käyttää seuraavaa käskyä, mutta se ei luo temppi-kansiota. :'(
#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";
}
}
Tämä palauttaa erroriin NULL:n, kun haluaisin luoda väliaikaishakemiston.
-
Löytyi ratkaisu !
Kiitos avusta...
#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";
}
}
Elikkäs tarvitaan tiedostonnimiin XXX:iä loppuun, jotka temppigeneraattori muuttaa yksilölliseksi hakemistoksi.
-
Voi käyttää myös c++ kirjaston valmista toimintaa:
https://en.cppreference.com/w/cpp/io/c/tmpfile
-
Voi käyttää myös c++ kirjaston valmista toimintaa:
https://en.cppreference.com/w/cpp/io/c/tmpfile
Enkös minä juuri niin tehnyt ?
-
Voi käyttää myös c++ kirjaston valmista toimintaa:
https://en.cppreference.com/w/cpp/io/c/tmpfile
Enkös minä juuri niin tehnyt ?
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ä.
-
Jos tarvitset nimenomaan hakemiston, käyttämäsi C-funktio mkdtemp on siihen suoraviivaisin ratkaisu ainakin Linux/Unix-ympäristössä.
Jep, tarvitsen nimen omaan väliaikais-hakemiston. Toki läjällä tiedostoja voisi saman ongelman ratkaista, mutta se ei olisi niin siisti kuin hakemiston käyttäminen, eikä se olisi myöskään niin helppo ohjelmoida.