@ -1,19 +1,30 @@
# define _GNU_SOURCE
# define _GNU_SOURCE
# include <dlfcn.h>
# include <dlfcn.h>
# include <errno.h>
# include <pwd.h>
# include <pwd.h>
# include <stdio.h>
# include <stdio.h>
# include <stdlib.h>
# include <stdlib.h>
# include <string.h>
# include <string.h>
# include <sys/types.h>
# include <sys/types.h>
int strlcpy ( char * restrict dest , const char * restrict src , size_t bufsize ) {
size_t i ;
for ( i = 0 ; i < bufsize ; + + i ) {
dest [ i ] = src [ i ] ;
if ( src [ i ] = = ' \0 ' ) {
return 0 ;
}
}
return ERANGE ;
}
char * getlogin ( void ) {
char * getlogin ( void ) {
return getenv ( " USER " ) ;
return getenv ( " USER " ) ;
}
}
int getlogin_r ( char * buf , size_t bufsize ) {
int getlogin_r ( char * buf , size_t bufsize ) {
strncpy ( buf , getlogin ( ) , bufsize ) ;
return strlcpy ( buf , getlogin ( ) , bufsize ) ;
return 0 ;
}
}
struct passwd * getpwuid ( uid_t uid ) {
struct passwd * getpwuid ( uid_t uid ) {