当我们执行ll
或者ls -l
时将会得到文件拥有者
和文件拥有者所在的组
信息
代码中可以通过getpwuid
将文件的uid和和文件拥有者的name
关联起来。
可以先回顾ls -l
的源码过程 ls -l 刨丁解牛
1.通过DIR *
和strcut direntp
拿到目录信息
DIR * dir_ptr;
struct dirent *direntp;
dir_ptr=opendir(dirname);
while(direntp=readdir(dir_ptr)!=NULL)
{
direntp->d_name;
}
2.使用stat
分析文件信息
在struct stat
的结构体中主要关注两个字段,uid
和gid
一个是文件的拥有者的user id
一个是文件拥有者所在组的group id
通过调用getpwuid
和getgrgid
来分别获得id
对应的名字