char * getlogin ( void );
#include <stdio.h>
cuserid возвращает указатель на строку, содержащую имя пользователя, связанное с идентификатором эффективного пользователя процесса. Если string не является "пустым" указателем, то это должен быть массив, который способен вместить как минимум L_cuserid символов; строка возвращается в этом массиве. В противном случае возвращается указатель на строку в фиксированной области. Эта строка выделена статически и может быть записана вновь при последующих вызовах этой функции или функции getlogin.
Макрос L_cuserid является целочисленной константой, показывающей длину массива, который может понадобиться для хранения имени пользователя. L_cuserid описана в stdio.h.
Эти функции позволяют программе точно определить работающего пользователя ( cuserid) или пользователя, вошедшего в систему в течение этого сеанса ( getlogin). Функции могут различаться, если запускаются программы с установленным битом setuid.
В большинстве случаев для определения пользователя полезнее использовать переменную окружения LOGNAME, потому что пользователь может установить LOGNAME каким угодно.
/etc/passwd файл базы данных паролей
/var/run/utmp (традиционно /etc/utmp; в некоторых версиях libc использовались /var/adm/utmp)
Hикто точно не знает, как работает cuserid(), поэтому избегайте ее использования в переносимых программах, а вместо нее используйте getpwuid(geteuid()), если это необходимо. Еще раз: HЕ ИСПОЛЬЗУЙТЕ cuserid().
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |