1/*++ 2/* NAME 3/* username 3 4/* SUMMARY 5/* lookup name of real user 6/* SYNOPSIS 7/* #include <username.h> 8/* 9/* const char *username() 10/* DESCRIPTION 11/* username() jumps whatever system-specific hoops it takes to 12/* get the name of the user who started the process. The result 13/* is volatile. Make a copy if it is to be used for an appreciable 14/* amount of time. 15/* LICENSE 16/* .ad 17/* .fi 18/* The Secure Mailer license must be distributed with this software. 19/* AUTHOR(S) 20/* Wietse Venema 21/* IBM T.J. Watson Research 22/* P.O. Box 704 23/* Yorktown Heights, NY 10598, USA 24/*--*/ 25 26/* System library. */ 27 28#include <sys_defs.h> 29#include <unistd.h> 30#include <pwd.h> 31 32/* Utility library. */ 33 34#include "username.h" 35 36/* username - get name of user */ 37 38const char *username(void) 39{ 40 uid_t uid; 41 struct passwd *pwd; 42 43 uid = getuid(); 44 if ((pwd = getpwuid(uid)) == 0) 45 return (0); 46 return (pwd->pw_name); 47} 48