1/* logname - print login name of current user */ 2 3#include <config.h> 4 5#if defined (HAVE_UNISTD_H) 6# include <unistd.h> 7#endif 8 9#include <stdio.h> 10#include <errno.h> 11 12#include "builtins.h" 13#include "shell.h" 14 15#if !defined (errno) 16extern int errno; 17#endif 18 19logname_builtin (list) 20 WORD_LIST *list; 21{ 22 char *np; 23 24 if (no_options (list)) 25 return (EX_USAGE); 26 27 np = getlogin (); 28 if (np == 0) 29 { 30 builtin_error ("cannot find username: %s", strerror (errno)); 31 return (EXECUTION_FAILURE); 32 } 33 printf ("%s\n", np); 34 return (EXECUTION_SUCCESS); 35} 36 37char *logname_doc[] = { 38 "write the current user's login name to the standard output", 39 "and exit. logname ignores the LOGNAME and USER variables.", 40 "logname ignores any non-option arguments.", 41 (char *)NULL 42}; 43 44struct builtin logname_struct = { 45 "logname", 46 logname_builtin, 47 BUILTIN_ENABLED, 48 logname_doc, 49 "logname", 50 0 51}; 52 53