13e12c5d1SDavid du Colombier #include <sys/types.h> 23e12c5d1SDavid du Colombier #include <sys/stat.h> 33e12c5d1SDavid du Colombier #include <fcntl.h> 43e12c5d1SDavid du Colombier #include <unistd.h> 53e12c5d1SDavid du Colombier #include <sys/limits.h> 63e12c5d1SDavid du Colombier 73e12c5d1SDavid du Colombier char * getlogin_r(char * buf,int len)8*2d069feaSDavid du Colombiergetlogin_r(char *buf, int len) 93e12c5d1SDavid du Colombier { 103e12c5d1SDavid du Colombier int f, n; 113e12c5d1SDavid du Colombier 123e12c5d1SDavid du Colombier f = open("/dev/user", O_RDONLY); 133e12c5d1SDavid du Colombier if(f < 0) 143e12c5d1SDavid du Colombier return 0; 15*2d069feaSDavid du Colombier n = read(f, buf, len); 16*2d069feaSDavid du Colombier buf[len-1] = 0; 173e12c5d1SDavid du Colombier close(f); 183e12c5d1SDavid du Colombier return (n>=0)? buf : 0; 193e12c5d1SDavid du Colombier } 20*2d069feaSDavid du Colombier 21*2d069feaSDavid du Colombier char * getlogin(void)22*2d069feaSDavid du Colombiergetlogin(void) 23*2d069feaSDavid du Colombier { 24*2d069feaSDavid du Colombier static char buf[NAME_MAX+1]; 25*2d069feaSDavid du Colombier 26*2d069feaSDavid du Colombier return getlogin_r(buf, sizeof buf); 27*2d069feaSDavid du Colombier } 28