diff options
Diffstat (limited to 'src/libbb/.svn/text-base/xreadlink.c.svn-base')
-rw-r--r-- | src/libbb/.svn/text-base/xreadlink.c.svn-base | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/libbb/.svn/text-base/xreadlink.c.svn-base b/src/libbb/.svn/text-base/xreadlink.c.svn-base deleted file mode 100644 index 7d77a3b..0000000 --- a/src/libbb/.svn/text-base/xreadlink.c.svn-base +++ /dev/null @@ -1,37 +0,0 @@ -/* - * xreadlink.c - safe implementation of readlink. - * Returns a NULL on failure... - */ - -#include <stdio.h> - -/* - * NOTE: This function returns a malloced char* that you will have to free - * yourself. You have been warned. - */ - -#include <unistd.h> -#include "libbb.h" - -extern char *xreadlink(const char *path) -{ - static const int GROWBY = 80; /* how large we will grow strings by */ - - char *buf = NULL; - int bufsize = 0, readsize = 0; - - do { - buf = xrealloc(buf, bufsize += GROWBY); - readsize = readlink(path, buf, bufsize); /* 1st try */ - if (readsize == -1) { - perror_msg("%s", path); - return NULL; - } - } - while (bufsize < readsize + 1); - - buf[readsize] = '\0'; - - return buf; -} - |