C함수 그룹파일 내용 읽기 getgrent()
그룹 파일 내용에서 사용자 정보를 구합니다.
- 헤더: grp.h
- 형태: struct group *getgrent(void)
- 인수: -
- 반환: struct group * 그룹 파일로부터 그룹 정보를 구하며, 더 읽어들일 자료가 없다면 NULL을 반환합니다.
getgrwent()는 /etc/group 파일 내용을 호출할 때마다 행 하나씩 사용자 정보를 출력합니다. 다시 처음 행으로 읽기 위치를 변경하려면 setgrent()를 호출합니다. 그룹 파일을 모두 사용했다면 endgrent()함수를 호출하여 암호 파일을 닫습니다.
그룹 정보는 grp.h 에 선언된 struct group 로 구해집니다.
struct group {
char *gr_name; /* Group name. */
char *gr_passwd; /* Password. */
__gid_t gr_gid; /* Group ID. */
char **gr_mem; /* Member list. */
};
/etc/group 파일 내용이 아래와 같다면,
getgrent()를 호출할 때 마다 행 하나씩 정보를 구하게 됩니다.
setgrent()를 호출하면 읽을 위치가 첫 행으로 이동합니다.
C언어 getgrent() 함수 예제
#include <stdio.h>
#include <unistd.h>
#include <grp.h>
int main()
{
struct group *group_entry;
while( NULL != ( group_entry = getgrent()) )
{
printf( "group name :%s\n", group_entry->gr_name );
printf( "group id :%d\n", group_entry->gr_gid );
}
printf( "---------------------------------\n");
setgrent(); // 그룹 파일의 첫 번째 행으로 이동
group_entry = getgrent(); // 그룹 파일 첫 행을 출력
printf( "group name :%s\n", group_entry->gr_name );
printf( "group id :%d\n", group_entry->gr_gid );
endgrent(); // 그룹 파일 닫음
return 0;
}
C언어 getgrent() 예제 실행 결과
]$ ./a.out
group name :root
group id :0
group name :bin
group id :1
group name :daemon
group id :2
---------------------------------
group name :root
group id :0
]$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 그룹파일 읽기 위치를 맨 윗 행으로 이동 함수 setgrent() (0) | 2020.03.14 |
---|---|
C언어 암호파일 닫기 함수 endpwent() (0) | 2020.03.14 |
C언어 암호파일에서 읽기 위치를 첫 행으로 이동 함수 setpwent() (0) | 2020.03.14 |