【库函数】linux之getuid和getpwuid函数
来源:互联网 发布:淘宝官方集运 费用 编辑:程序博客网 时间:2024/05/16 08:57
1、getuid和getpwuid函数简介
(一)
(1)头文件
(3)说明
(二)
(1)头文件
2、举例:
#include <sys/types.h>
#include <pwd.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
uid_t uid;
uid = getuid();
printf("User IDs: uid=%d\n", uid);
uid_t my_uid;
struct passwd *my_info;
my_info =getpwuid( getuid() );
printf( "my name = [%s]\n", my_info->pw_name );
printf( "my passwd = [%s]\n", my_info->pw_passwd );
printf( "my uid = [%d]\n", my_info->pw_uid );
printf( "my gid = [%d]\n", my_info->pw_gid );
printf( "my gecos = [%s]\n", my_info->pw_gecos );
printf( "my dir = [%s]\n", my_info->pw_dir );
printf( "my shell = [%s]\n", my_info->pw_shell );
return 0;
}
结果:
User IDs: uid=501
my name = [mister]
my passwd = [x]
my uid = [501]
my gid = [100]
my gecos = []
my dir = [/home/mister]
my shell = [/bin/bash]
3、小结
从函数中可以看到先用getuid获取到用户id号,然后使用getpwuid获取到了用户的相关信息。
这个函数实现的机制其实就是跟/etc/passwd的文件中记录的信息一样,cat /etc/passwd如下:
pulse:x:495:491:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
stap-server:x:155:155:Systemtap Compile Server:/var/lib/stap-server:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat6:/bin/sh
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
winter:x:500:500::/home/winter:/bin/bash
mister:x:501:100::/home/mister:/bin/bash
结构体passwd和这个文件中是一一对应的。实际上这个函数实现的就是获取passwd文件中的信息。可以知道当前程序正在使用的用户以及用户路径。
- 【库函数】linux之getuid和getpwuid函数
- getuid()获取用户识别码 -- linux函数
- 【库函数】linux之access函数
- getpwuid()函数,getpgrgid()函数()
- getuid,setuid函数
- getuid,setuid函数
- getuid,setuid函数
- Linux库函数之strchr函数分析
- getpwuid
- getpwuid()
- linux getpwuid 得到指定用户信息
- linux getpwuid 得到指定用户信息
- getpwuid和getpwnam的用法
- 4进程原语:fork()函数,getpid()函数和getppid()函数,getuid()函数,getgid()函数,vfork()
- 进程原语:fork()函数,getpid()函数和getppid()函数,getuid()函数,getgid()函数,vfork()
- getuid
- setUID,setGID,getuid,geteuid函数
- Unix高级环境编程之获取用户口令信息getpwuid函数
- 【装机吧】Win7电脑系统32位和64位区别(详细版)
- Hay Day系统设计沉思录——操作序列与网络
- 人事和程序员分别是怎样读简历的
- C++ - 类的赋值操作 使用 "复制-交换(copy and swap) 技术" 详解
- 论DWR在Java Web快速开发中的重要性
- 【库函数】linux之getuid和getpwuid函数
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- 如何用O(n)时间复杂度查找第k大数的优化算法 C++程序
- 知识管理学习笔记
- 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素
- 在RedHat下搭建GTK开发环境
- JAVA系列-设计模式-备忘录模式
- DataGridView数据绑定
- C# 泛型