gcc -pthread -Wall -Wextra -Werror=implicit-function-declaration pwd/getpwnam_r.c -o pwd/getpwnam_r -D_GNU_SOURCE -D_BSD_SOURCE -D_ALL_SOURCE -D_DEFAULT_SOURCE -lm -lpthread -lrt -lxnet -lsocket -latomic pwd/getpwnam_r.c: In function 'main': pwd/getpwnam_r.c:25:26: error: too many arguments to function 'getpwnam_r' 25 | while ( (errno = getpwnam_r(user, &entry, buffer, size, &pwd)) ) | ^~~~~~~~~~ In file included from pwd/getpwnam_r.c:3: /usr/include/pwd.h:167:23: note: declared here 167 | extern struct passwd *getpwnam_r(const char *, struct passwd *, char *, int); | ^~~~~~~~~~ pwd/getpwnam_r.c:25:24: error: assignment to 'int' from 'struct passwd *' makes integer from pointer without a cast [-Wint-conversion] 25 | while ( (errno = getpwnam_r(user, &entry, buffer, size, &pwd)) ) | ^