Форум — Development с или с++ : получение имени пользователя. 0 0 Возникла задача. Нужно получить имя пользователя, под которым данная программа запущена. Пока вырисовывается парсинг переменных среды на предмет имени пользователя, но может есть способ лучше? Ссылка
Странно, printf(getlogin()); ничего не выводит anonymous (26.05.08 13:57:48 MSK) Показать ответ Ссылка
Вроде разобрался. getenv("LOGNAME") работает. Попробую ещё getlogin_r. Спасибо, товарищи! anonymous (26.05.08 14:20:14 MSK) Ссылка
Ответ на: комментарий от anonymous 26.05.08 13:57:48 MSK Это когда пользователь в терминале зашел и запустил программу. Попробуй еще cuserid. gruy ★★★★★ (26.05.08 14:22:23 MSK) Показать ответ Ссылка
Ответ на: комментарий от no-dashi 26.05.08 13:37:39 MSK getpwent нужен для парсинга /etc/passwd, причём тут он? alex_custov ★★★★★ (26.05.08 14:30:58 MSK) Ссылка
Ответ на: комментарий от gruy 26.05.08 14:22:23 MSK >Попробуй еще cuserid printf(cuserid(0)); работает! Ещё раз всем спасибо!!! anonymous (26.05.08 14:34:41 MSK) Показать ответ Ссылка
А вообще на будущее есть чудесная команда apropos. Для твоего случая: #apropos user | grep name dont (26.05.08 14:41:01 MSK) Ссылка
А какое имя? Их несколько, однако... getlogin не то, он просто вернет собственника контрольного терминала (если он есть). Короче, сначала (в зависимости от постановки задачи) getuid или geteuid потом getpwuid Die-Hard ★★★★★ (26.05.08 15:41:31 MSK) Ссылка
Ответ на: комментарий от anonymous 26.05.08 14:34:41 MSK >printf(cuserid(0)); Лучше указать спецификатор вывода явно: "%s", ну и символ новой строки заодно.. php-coder ★★★★★ (27.05.08 21:44:33 MSK) Ссылка