1 #include <unistd.h> 2 #include "syscall.h" 3 readlinkat(int fd,const char * restrict path,char * restrict buf,size_t bufsize)4ssize_t readlinkat(int fd, const char *restrict path, char *restrict buf, size_t bufsize) 5 { 6 char dummy[1]; 7 if (!bufsize) { 8 buf = dummy; 9 bufsize = 1; 10 } 11 int r = __syscall(SYS_readlinkat, fd, path, buf, bufsize); 12 if (buf == dummy && r > 0) r = 0; 13 return __syscall_ret(r); 14 } 15