我试图获取文件所有者和用户组的C字符串,在执行stat()
之后,我获得了用户ID和组ID,但是如何获取名称呢?
您可以使用 getgrgid()
函数获取组名,使用 getpwuid()
函数获取用户名:
#include <pwd.h>
#include <grp.h>
/* ... */
struct group *grp;
struct passwd *pwd;
grp = getgrgid(gid);
printf("group: %s\n", grp->gr_name);
pwd = getpwuid(uid);
printf("username: %s\n", pwd->pw_name);
getgrgid()
和getpwuid()
可能会返回NULL
,在这种情况下,您应该使用sprintf()
将数字ID转换为字符串。 - caf