1*30484Slepreau static char Sccsid[] "@(#)username 2.1"; 2*30484Slepreau /* 3*30484Slepreau Gets user's login name. 4*30484Slepreau Note that the argument must be an integer. 5*30484Slepreau Returns pointer to login name on success, 6*30484Slepreau pointer to string representation of used ID on failure. 7*30484Slepreau 8*30484Slepreau Remembers user ID and login name for subsequent calls. 9*30484Slepreau */ 10*30484Slepreau 11*30484Slepreau username(uid) 12*30484Slepreau register int uid; 13*30484Slepreau { 14*30484Slepreau char pw[200]; 15*30484Slepreau static int ouid; 16*30484Slepreau static char lnam[9], *lptr; 17*30484Slepreau register int i; 18*30484Slepreau 19*30484Slepreau if (ouid!=uid || ouid==0) { 20*30484Slepreau if (getpw(uid,pw)) 21*30484Slepreau sprintf(lnam,"%d",uid); 22*30484Slepreau else { 23*30484Slepreau for (i=0; i<8; i++) 24*30484Slepreau if ((lnam[i] = pw[i])==':') break; 25*30484Slepreau lnam[i] = '\0'; 26*30484Slepreau } 27*30484Slepreau lptr = lnam; 28*30484Slepreau ouid = uid; 29*30484Slepreau } 30*30484Slepreau return(lptr); 31*30484Slepreau } 32