반응형
getgrgid(3)
#include <sys/types.h>
#include <grp.h>
struct group *getgrgid(gid_t gid);
group id로 사용자 그룹의 상세정보를 조회하는 함수입니다. 이 함수는 multi-thread 프로그램에서는 동시에 호출되면 잘못된 정보를 return할 수 있으므로 getgrgid_r(3)함수를 사용하기 바랍니다. group의 정보는 /etc/group 파일에 저장합니다.
group file의 format (그룹명:x:그룹ID:usr목록, ...)
grp1:x:3000:usr1,usr2,usr3
파라미터
gid
- 그룹의 상세 정보를 얻기 위한 그룹id
RETURN
struct group {
char *gr_name; /* group name */
char *gr_passwd; /* group password */
gid_t gr_gid; /* group ID */
char **gr_mem; /* group members */
};
NULL이 아닌 경우
- 정상적으로 group 상세 정보를 조회함
NULL
- 미등록된 그룹ID이거나 오류가 발생하였습니다.
- 오류 내용은 errno에 설정되며, 함수를 호출하기 전에 errno = 0; 으로 초기화가 필요합니다.
활용 예제
Sample) 현 프로세스의 그룹ID와 그룹명을 출력
#include <stdio.h>
#include <unistd.h>
#include <grp.h>
int main(int argc, char **argv)
{
struct group *gr = NULL;
gr = getgrgid(getgid());
printf("group id: %d\n", gr->gr_gid);
printf("group name: %s\n", gr->gr_name);
return 0;
}
see also : getegid(2) getgrnam(3) getgrnam_r(3) getgrgid_r(3) 사용자 및 그룹 관련 Library
반응형
'C언어 header > grp.h' 카테고리의 다른 글
getgrgid_r(3) - 그룹 ID와 그룹의 상세 정보 조회(thread-safe) (0) | 2019.10.14 |
---|---|
getgrnam_r(3) - 그룹명으로 그룹의 상세 정보 조회 (thread-safe) (0) | 2019.10.14 |
getgrnam(3) - group명으로 그룹 상세 정보 조회 (0) | 2019.10.14 |