查找文件的所有者和组(作为字符串)

5

我试图获取文件所有者和用户组的C字符串,在执行stat()之后,我获得了用户ID和组ID,但是如何获取名称呢?

2个回答

9

您可以使用 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

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接