1 #define _GNU_SOURCE 2 #include <stdlib.h> 3 #include <string.h> 4 #include <limits.h> 5 #include <unistd.h> 6 #include <sys/stat.h> 7 get_current_dir_name(void)8char *get_current_dir_name(void) { 9 struct stat a, b; 10 char *res = getenv("PWD"); 11 if (res && *res && !stat(res, &a) && !stat(".", &b) 12 && (a.st_dev == b.st_dev) && (a.st_ino == b.st_ino)) 13 return strdup(res); 14 return getcwd(0, 0); 15 } 16