diff options
Diffstat (limited to 'otherlibs/unix/readlink.c')
-rw-r--r-- | otherlibs/unix/readlink.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/otherlibs/unix/readlink.c b/otherlibs/unix/readlink.c new file mode 100644 index 000000000..ffd979da5 --- /dev/null +++ b/otherlibs/unix/readlink.c @@ -0,0 +1,24 @@ +#include <mlvalues.h> +#include <alloc.h> + +#ifdef HAS_SYMLINK + +#include <sys/param.h> +#include "unix.h" + +value unix_readlink(path) /* ML */ + value path; +{ + char buffer[MAXPATHLEN]; + int len; + len = readlink(String_val(path), buffer, sizeof(buffer) - 1); + if (len == -1) uerror("readlink", path); + buffer[len] = '\0'; + return copy_string(buffer); +} + +#else + +value unix_readlink() { invalid_argument("readlink not implemented"); } + +#endif |