Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 查找文件的所有者和组(作为字符串)_C_Linux - Fatal编程技术网

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

C 查找文件的所有者和组(作为字符串),c,linux,C,Linux,我正在尝试获取文件所有者和组的C字符串,在执行stat()之后,我获取了用户ID和组ID,但是如何获取名称呢?尝试使用getpwuid() 您可以使用获取组名和用户名: #include <pwd.h> #include <grp.h> /* ... */ struct group *grp; struct passwd *pwd; grp = getgrgid(gid); printf("group: %s\n", grp->gr_name); pwd =

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

尝试使用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);
#包括
#包括
/* ... */
结构组*grp;
结构密码*pwd;
grp=getgrgid(gid);
printf(“组:%s\n”,grp->gr\u名称);
pwd=getpwuid(uid);
printf(“用户名:%s\n”,密码->密码名称);
请注意,如果缺少相关条目,则
getgrgid()
getpwuid()
可以返回
NULL
,在这种情况下,您可能只需使用
sprintf()
将数字ID转换为字符串即可。