1#define _GNU_SOURCE 2#include <pwd.h> 3#include <stdio.h> 4#include <unistd.h> 5 6char* cuserid(char* buf) { 7 struct passwd pw, *ppw; 8 long pwb[256]; 9 if (getpwuid_r(geteuid(), &pw, (void*)pwb, sizeof pwb, &ppw)) 10 return 0; 11 snprintf(buf, L_cuserid, "%s", pw.pw_name); 12 return buf; 13} 14