EDA365电子论坛网
标题:
Linux C高级编程 Linux C语言实现ls -l(下)
[打印本页]
作者:
mytomorrow
时间:
2019-8-12 13:32
标题:
Linux C高级编程 Linux C语言实现ls -l(下)
4.文件所有者和文件所有者组:通过stat结构体的注释信息可以看出,stat只能获取文件的uid和gid并不是uid gid对应的用户或组的名称。
" M' N5 s' n8 J' C- o9 S
: g w" [0 f% x. J) |+ c+ ]2 X/ J
2 r7 c, v/ ^9 r
uid找到对应的用户名是可以通过getpwuid这个系统调用获取,这个系统调用接受一个uid返回一个passwd的结构体,这个结构体成员如下:
: A5 B0 k& _3 d- h! X" f( f
, v, R3 x' k! o3 l. c" B
/ p* |- T; G$ ]6 ~+ N
char *pw_name;//User’s login name.
uid_t pw_uid; //umerical user ID.
gid_t pw_gid; //Numerical group ID.
char *pw_dir;//Initial working directory.
char *pw_shell;//Program to use as shell.<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
" X. K$ Q f- C4 h# f
8 v2 v! c" l6 h, c ]- v
, ~/ g; W% |6 `, V1 T0 B
7 v3 ?1 R6 ~: r2 I+ k6 p
! h, O$ J& f: ~7 I
. E) v+ Y6 M( Y c7 d: I( J( N
gid对应的组名同样可以找到一个系统调用来获取,通过man我发现可以通过getgrgid()系统调用传入一个gid
: N7 L2 h3 s9 ` d! j0 f: j- [
6 D# e( j2 j5 @% q+ M
, Y. \* K- W T' [5 s
6 _! M4 r# ?: C. [2 ^: A5 D
% ^7 }) H# A4 v6 y
% E1 U( w6 f8 f2 g* ] A3 D
/ H' Z9 |/ V+ b5 f0 H+ O
x* T3 Q: o- s% d6 b
作者:
fanichicl
时间:
2019-8-12 17:35
学习一下。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2