用户标示符
任何进程都能找到它的真实、有效ID和组ID。有时,我们想找出程序是哪个用户运行的。这时可以调用getpwuid(getuid()),但是当一个用户有多个登陆名(一个用户在passwd文件中有多条记录都使用同一个UID,用于使用不同的shell登陆每个用户)时会发生什么?那么系统会追踪登陆名,并尝试用getlogin函数找到登陆名。
#include <unistd.h> char *getlogin(void); |
Returns: pointer to string giving login name if OK, NULL on error |
如果进程没有依附到用户登陆到的终端上,这个程序会失效。通常称这种进程为daemon(守护进程)。
得到了登陆用户名,这时就可以在passwd文件中找到它的登陆shell,例如使用getpwnam。