====== Prelevare il valore di una variabile shell ======
Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//24/04/2008//** \\ \\
Una proatica funzione che permette di fare quanto sopra detto:
===== Metodo "standard" =====
Si usa di solito la funzione ''getenv'' in questo modo:
char *MiaVarShell = getenv("HOME")
รจ necessario usare i seguenti include ''#include '' e ''#include ''
===== Metodo "strano" =====
#include
std::string return_from_shell(std::string VarShell){
/*Ritorna il valore di una variabile bash */
std::string line ;
VarShell= "echo " + VarShell+ " >/tmp/VarShell";
if (system(VarShell.c_str())==0 ){
ifstream VarShell("/tmp/VarShell",ios::in);
if(!VarShell){
cerr<<"Problemi nell'apertura del file temporaneo.";
}else{
getline(VarShell,line,'\n');
cout << "Valore variabile shell richiesta -> " << line << endl;
}
}else{
}
unlink("/tmp/VarShell");
return line;
}
La si usa cosi:
...
std::string Valore= return_from_shell("$HOME");
...
cambiando la riga:
VarShell= "echo " + VarShell+ " >/tmp/VarShell";
in
VarShell= VarShell+ " >/tmp/VarShell";
posso farmi ritornare qualunque output dallo standard output.