#include #include char *getenv2(char *nam) { static char buf_ret[256]; char buf_cmd[256]; snprintf(buf_cmd, sizeof(buf_cmd), "echo ${%s}", nam); FILE *f = popen(buf_cmd, "r"); char *ret = fgets(buf_ret, sizeof(buf_ret), f); pclose(f); char *nl; if(ret && (nl = strrchr(ret, '\n'))) *nl = '\0'; return ret; } main() { printf("%s\n", getenv2("HOME")); }