From 1611ab0d9b10ad3413f452c2b31a6c1c56dd6939 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 17 Feb 2012 23:10:00 -0500 Subject: add get_current_dir_name function --- include/unistd.h | 1 + src/misc/get_current_dir_name.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/misc/get_current_dir_name.c diff --git a/include/unistd.h b/include/unistd.h index 95b514ec..7662e518 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -158,6 +158,7 @@ unsigned ualarm(unsigned, unsigned); int setgroups(size_t, const gid_t []); int setresuid(uid_t, uid_t, uid_t); int setresgid(gid_t, gid_t, gid_t); +char *get_current_dir_name(void); #endif #define _XOPEN_VERSION 700 diff --git a/src/misc/get_current_dir_name.c b/src/misc/get_current_dir_name.c new file mode 100644 index 00000000..212edf31 --- /dev/null +++ b/src/misc/get_current_dir_name.c @@ -0,0 +1,12 @@ +#include +#include +#include +#include + +char *get_current_dir_name(void) { + char buf[PATH_MAX]; + char* res = getenv("PWD"); + if(res && *res) return strdup(res); + if(!getcwd(buf, sizeof(buf))) return NULL; + return strdup(buf); +} -- cgit 1.4.1