Barra laterale

programmazione:cpp:prelevare_il_valore_di_una_variabile_shell

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 <stdio.h> e #include <stdlib.h>

Metodo "strano"

#include <string>
 
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.


programmazione/cpp/prelevare_il_valore_di_una_variabile_shell.txt · Ultima modifica: 18/04/2018 - 15:49 (modifica esterna)