Поиск владельца и группы файла (в виде строки)

#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() and getpwuid() может возвращаться NULL , если соответствующая запись отсутствует, и в этом случае вам, вероятно, следует просто преобразовать числовой идентификатор в строку with sprintf() .

Ответ №2:

Попробуйте использовать getpwuid();

http://linux.die.net/man/3/getpwuid