Vorrei mettere un tipo di file di blocco nella home directory dell'utente su linux (da C++) ma fopen'ing ~/.fluudit non sembra funzionare.come aprire un file nella cartella home dell'utente
fopen("~/.fluudit","w"); //fails
Vorrei mettere un tipo di file di blocco nella home directory dell'utente su linux (da C++) ma fopen'ing ~/.fluudit non sembra funzionare.come aprire un file nella cartella home dell'utente
fopen("~/.fluudit","w"); //fails
È possibile utilizzare la variabile di ambiente HOME
e se questo non è presente, è possibile utilizzare il database delle password:
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
struct passwd *pw = getpwuid(getuid());
const char *homedir = pw->pw_dir;
L'espansione ~
, per esempio, si chiama getenv("HOME")
globbing ed è qualcosa che devi fare prima. Non hai detto quali librerie o framework stai usando, ma alcuni lo forniscono.
~ non funziona qui perché è il guscio che si traduce ~ ad Home appropriata. La shell sostituisce il carattere speciale (~) nella riga di comando sul percorso assoluto. Quindi ~ non può essere usato nei programmi C o C++. – srikanta