#define _GNU_SOURCE | |
#include <stdlib.h> | |
#include <string.h> | |
#include <limits.h> | |
#include <unistd.h> | |
#include <sys/stat.h> | |
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); | |
} |