본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 그룹파일 읽기 위치를 맨 윗 행으로 이동 함수 setgrent()

C언어 그룹파일 읽기 위치를 맨 윗 행으로 이동 함수 setgrent()

· 댓글개 · 바다야크

C함수 그룹파일 닫기 endgrent()

그룹 파일 읽기를 종료하고 파일을 닫습니다.

  • 헤더: grp.h
  • 형태: void endgrent(void)
  • 인수: -
  • 반환: -

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. */
  };

파일 내용이 아래와 같다면,

getgrent()를 호출할 때 마다 행 하나씩 정보를 구하게 됩니다.

setgrent()를 호출하면 읽을 위치가 첫 행으로 이동합니다.

C언어 setgrent() 함수 예제

#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언어 setgrent() 예제 실행 결과

]$ ./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
]$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.