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