#define _GNU_SOURCE #include #include #include #include #include char *get_current_dir_name(void) { struct stat a, b; char *res = getenv("PWD"); if (res && *res && !stat(res, &a) && !stat(".", &b) && (a.st_dev == b.st_dev) && (a.st_ino == b.st_ino)) return strdup(res); return getcwd(0, 0); }