LINUX.ORG.RU
А просто who, w и whoami не подойдут?
anonymous
()
Я понимаю, что так можно. Но нужно именно чтобы прога на Си выдавала как результат имя пользователя. :)
NiJazz
() автор топика
Тогда man getlogin.
anonymous
()
Я знаю, что есть команды w, who и whoami. Но надо сделать так, чтобы именно фуекция на Си выдавала как результат имя пользователя.
NiJazz
() автор топика
Так, батенька, getlogin и есть функция...
anonymous
()
getenv("USER")
anonymous
()
Ни в коем случае не getenv!! Это любой пользователь сделает export USER=root и (например, если Ваша программа запускается с установленным suid) обманет программу. В то время как getlogin выдаст правильный результат
anonymous
()

Встречный вопрос

а whoami тоже читает $USER или как
anonymous
()
Да елки-палки. Сказано ведь уже: ни одна нормальная программа USER не использует, whoami (не путать с who am i) читает /etc/passwd. точнее использует пару вызовов getpwuid(geteuid()). А "who am i" (или "who is idiot", что на Вашем компьютере даст тот же самый результат - проверьте, если не верите) читает /var/log/wtmp.с помощью getutxent
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.