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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.