#includestructdirent*readdir(DIR *dirp);/*
功能:读取目录下的内容
参数:目录指针
返回值:
成功: dirent结构体指针
失败: NULL 重置错误码
*/// dirent结构体指针structdirent{ino_t d_ino;/* 读到的文件的inode号 */off_t d_off;/* 无需关注 */unsignedshort d_reclen;/* 这个结构体的大小 不是文件的大小 */unsignedchar d_type;/* 文件类型 */
DT_BLK This is a block device.
DT_CHR This is a character device.
DT_DIR This is a directory.
DT_FIFO This is a named pipe(FIFO).
DT_LNK This is a symbolic link.
DT_REG This is a regular file.
DT_SOCK This is a UNIX domain socket.char d_name[256];/* 文件名 */};
#include#includestructpasswd*getpwuid(uid_t uid);/*
功能:
根据uid获取用户信息
参数:
uid: 用户id
返回值:
成功: 用户信息结构体
失败: NULL 重置错误码
*///用户信息结构体structpasswd{char*pw_name;/* username */char*pw_passwd;/* user password */uid_t pw_uid;/* user ID */gid_t pw_gid;/* group ID */char*pw_gecos;/* user information */char*pw_dir;/* home directory */char*pw_shell;/* shell program */};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
getgrgid函数:
#include#includestructgroup*getgrgid(gid_t gid);/*
功能:
根据gid获取组信息
参数:
gid: 组id
返回值:
成功 组信息结构体
失败 NULL 重置错误码
*/structgroup{char*gr_name;/* group name */char*gr_passwd;/* group password */gid_t gr_gid;/* group ID */char**gr_mem;/* NULL-terminated array of pointers to names of group members */};
linux@ubuntu:~$ ./a.out ./-rw-rw-r--1 linux linux 73010月 122:44 k1.c
-rw-rw-r--1 linux linux 2610月 122:40 k2.txt
-rwxrwxr-x 1 linux linux 1298410月 219:31 a.out
-rw-rw-r--1 linux linux 407810月 219:17 ls-l.c
drwxrwxr-x 2 linux linux 409610月 218:59 k3
linux@ubuntu:~$ ls -l
总用量 32-rwxrwxr-x 1 linux linux 1298410月 219:31 a.out
-rw-rw-r--1 linux linux 73010月 122:44 k1.c
-rw-rw-r--1 linux linux 2610月 122:40 k2.txt
drwxrwxr-x 2 linux linux 409610月 218:59 k3
-rw-rw-r--1 linux linux 407810月 219:17 ls-l.c