/******************************************************/ /* tpax: a topological pax implementation */ /* Copyright (C) 2020 Z. Gilboa */ /* Released under GPLv2 and GPLv3; see COPYING.TPAX. */ /******************************************************/ #ifndef TPAX_READLINK_IMPL_H #define TPAX_READLINK_IMPL_H #include #include static inline int tpax_readlink( const char * restrict path, char * restrict buf, ssize_t bufsize) { ssize_t ret; if ((ret = readlink(path,buf,bufsize)) <= 0) { return -1; } else if (ret == bufsize) { errno = ENOBUFS; return -1; } else { buf[ret] = 0; return 0; } } #endif