Подскажите, пожалуйста, как узнать имя пользователя, который сейчас залогинен в linux? Т.е. свой логин. Нужен аналог whoami, для использования в коде программы.
Ответ
#include
int getlogin_r(char *buf, size_t bufsize);
или классический способ:
/* whoami.c */
#define _PROGRAM_NAME "whoami"
#include
int main(int argc, char *argv[])
{
register struct passwd *pw;
register uid_t uid;
int c;
uid = geteuid ();
pw = getpwuid (uid);
if (pw)
{
puts (pw->pw_name);
exit (EXIT_SUCCESS);
}
fprintf (stderr,"%s: cannot find username for UID %u
",
_PROGRAM_NAME, (unsigned) uid);
exit (EXIT_FAILURE);
}
enSO - How to get the username in C/C++ in Linux?
Комментариев нет:
Отправить комментарий