/******************************************************************************/ /* */ /* GetUserName - this function will return the user name of the user running */ /* the program. Check USER first! */ /* */ /* returns a pointer to the user name */ /* */ /******************************************************************************/ #include /* for getenv */ #include #include #if !defined (__MINGW32__) && !defined (__MSVCRT__) #include /* for uname */ #include #else #include #endif #include #if !defined (__MINGW32__) && !defined (__MSVCRT__) char *GetUserName () #else char *SDDAS_GetUserName () #endif { static char user_name_str [30]; #if !defined (__MINGW32__) && !defined (__MSVCRT__) struct passwd *user_name; uid_t user_id; #else DWORD len = sizeof (user_name_str); #endif strcpy (user_name_str, "unknown"); /* default value */ if (getenv ("USER") == NULL) { #if !defined (__MINGW32__) && !defined (__MSVCRT__) user_id = geteuid (); user_name = getpwuid (user_id); strncpy (user_name_str, user_name->pw_name, 29); #else GetUserName (user_name_str, &len); #endif } else { strncpy (user_name_str, getenv ("USER"), 29); } return user_name_str; }