Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > определение запущенной учетной записи Linux


Автор: Dogevec 12.11.2008, 02:30
Здравствуйте! Подскажите пожалуйста, в каком файле я могу узнать, какая именно учетная запись запущенна?!

Автор: chaos 12.11.2008, 08:53
командой шела whoami или посмотреть переменную окружения USER
Код

getenv("USER")

Автор: MAKCim 12.11.2008, 10:05
chaos, 
переменную окружения можно изменить  smile 
whoami работает по принципу
получаем EUID (geteuid()) и парсим /etc/passwd, чтобы получить идентификатор пользователя
тут есть одна особенность
такой подход позволяет получить идентификатор пользователя для конкретного запущенного процесса, а не для окружения в целом
чтобы осуществить последнее, надо работать напрямую с окружением (gnome, kde, ...)

Автор: system 12.11.2008, 14:29
Код

system( "id -nu" );

Автор: MAKCim 12.11.2008, 17:22
system, 
аналогично whoami

Автор: Dogevec 12.11.2008, 19:32
Вот какая штука, system("id -nu") выводит на консоль имя текущего пользавателяи, а можно как-то сделать так, чтобы я получал результат в строку, а не на консоль?

Автор: destrd 12.11.2008, 19:48
Цитата(Dogevec @  12.11.2008,  19:32 Найти цитируемый пост)
а можно как-то сделать так, чтобы я получал результат в строку

Можно, например так.
Код

FILE *stream;
stream = popen("id -nu", "r");
char buf[1024];
fgets(buf, sizeof(buf), stream);
pclose(stream);

Автор: Dogevec 13.11.2008, 01:38
Большое спасибо=)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)