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