1#include <unistd.h> 2#include <string.h> 3#include <errno.h> 4 5int getlogin_r(char *name, size_t size) 6{ 7 char *logname = getlogin(); 8 if (!logname) return ENXIO; /* or...? */ 9 if (strlen(logname) >= size) return ERANGE; 10 strcpy(name, logname); 11 return 0; 12} 13