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 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