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