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

 

 

블로그 이미지

사용자 자연&사람

행복한 개발자 programmer since 1995.

Tag , , ,

댓글을 달아 주세요