#c #linux
#c #linux
Вопрос:
Я пытаюсь получить строку C владельца и группы файла, после того, как я выполняю a stat()
, я получаю идентификатор пользователя и идентификатор группы, но как мне получить имя?
Ответ №1:
Вы можете использовать getgrgid()
для получения имени группы и getpwuid()
для получения имени пользователя:
#include <pwd.h>
#include <grp.h>
/* ... */
struct group *grp;
struct passwd *pwd;
grp = getgrgid(gid);
printf("group: %sn", grp->gr_name);
pwd = getpwuid(uid);
printf("username: %sn", pwd->pw_name);
Комментарии:
1. Обратите внимание, что
getgrgid()
andgetpwuid()
может возвращатьсяNULL
, если соответствующая запись отсутствует, и в этом случае вам, вероятно, следует просто преобразовать числовой идентификатор в строку withsprintf()
.
Ответ №2:
Попробуйте использовать getpwuid();