Giusto una domanda veloce.
Io ho scritto:
Perchè non scrive niente?codice:ofstream file("~/.exprex.conf"); file << "ciao" << endl; file.close();
Che modo c'è per scrivere nella home directory?
Giusto una domanda veloce.
Io ho scritto:
Perchè non scrive niente?codice:ofstream file("~/.exprex.conf"); file << "ciao" << endl; file.close();
Che modo c'è per scrivere nella home directory?
I've got a bike. You can ride it if you like.
Permesso negato suppongo. Il punto e` che (se ben ricordo) '~' e` una variabile che viene espansa dalla shell, quindi in questo caso il programma ha scritto (o ha provato a farlo ma il sistema gli ha negato l'accesso) un file di nome "~/.exprex.conf" nella directory corrente.Originariamente inviato da edriv
Perchè non scrive niente?codice:ofstream file("~/.exprex.conf"); file << "ciao" << endl; file.close();
Che modo c'è per scrivere nella home directory?
Siccome poi '/' e` separatore di PATH e non puo` essere parte di un nome di file, il risultato netto e` che il programma ha provato a scrivere il file ".exprex.conf" nella sottodirectory "~" della directory corrente.
E dato che dubito che quella directory esista, il risultato finale dovrebbe essere stato un "no such file or directory" o simile. Ci ho preso?
"Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".
Beh... è molto interessante come ipotesi e credo proprio che abbia ragione (ma non ho ancora provato).
Ho cercato su google, ma stranamente non ho trovato nessun modo di partire dalla home...
Poi provo a lavorare con system()... ma è possibile mettere l'output di un comando su una variabile?
Un file temporaneo mi sembra esagerato...
I've got a bike. You can ride it if you like.
Si tratta in pratica di:Originariamente inviato da edriv
Ho cercato su google, ma stranamente non ho trovato nessun modo di partire dalla home...
1) recuperare la directory HOME dell'utente
2) concatenare il percorso recuperato con il nome del file da creare
3) usare normalmente il PATH cosi` costruito
per il punto 2 si tratta, senza andare troppo per il sottile, di fare un po` di concatenazione di stringhe;
il punto 1 si puo` risolvere con getenv() leggendo la variabile d'ambiente HOME, oppure si puo` recuperare il valore da /etc/passwd (o eventualmente chi per lui) usando getpwuid() + getuid()/geteuid()
"Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".