getgrent

ëªì¹
     getgrent, getgrnam, getgrgid, setgroupent, setgrent, endgrent — 그룹
     ë°ì´íë² ì´ì¤ì ì¡°ì

ìì
     #include <sys/types.h>
     #include <grp.h>
     struct group * getgrent(void) struct group * getgrnam(const char *name)
     struct group * getgrgid(gid_t gid) int setgroupent(int stayopen) int
     setgrent(void) void endgrent(void)

í´ì¤
     ì´ë¬í í¨ìë 모ë, group(5) ì 기ì ë 그룹 ë°ì´íë² ì´ì¤ íì¼ /etc/group
     (ì)를 ì¡°ìí©ëë¤. ë°ì´íë² ì´ì¤ì ê° íì, ì¸í´ë£¨ë íì¼ ⟨grp.h⟩ ì ìë
     구조체 group ì ìí´ ì ìë©ëë¤. ë¤ìê³¼ ê°ìµëë¤.

           struct group {
                   char    *gr_name;       /* ê·¸ë£¹ëª */
                   char    *gr_passwd;     /* 그룹 í¨ì¤ìë */
                   int     gr_gid;         /* 그룹 id */
                   char    **gr_mem;       /* 그룹 ë©¤ë² */
           };

     í¨ì getgrnam() ë° getgrgid() (ì)ë, name ì ëíë´ë 주ì´ì§ ê·¸ë£¹ëª ëë gid ì
     ëíë´ë 그룹 id 를, 그룹 ë°ì´íë² ì´ì¤ë¡ ê²ìí´, ê°ê° ìµì´ì ì í©
     ìí¸ë¦¬ë¥¼ ëë ¤ì¤ëë¤. ë¤ë¥¸ ìí¸ë¦¬ì ëì¼ ê·¸ë£¹ëª ëë, ëì¼ ê·¸ë£¹ id íì§ë§
     주ì´ì§ê³  ìì¼ë©´(ì), 미ì ëë¦¬ì¸ ë¶ì¸¡ì ê±°ëì ê°ì ¸ì¤ë ì¼ì´ ììµëë¤.

     getgrent() í¨ìë, 그룹 ë°ì´íë² ì´ì¤ë¥¼ ì°¨ë¡ì°¨ë¡ ì½ì´ë¤ìëë¤. ìì í
     그룹 리ì¤í¸ë¥¼ ì°©ì¤íê² ìì±íë íë¡ê·¸ë¨ ë°©í¥ìëë¤.

     3 ê°ì routineë 모ë, ì½ê¸°ì íìíë©´ 목ì ì 그룹 íì¼ì ì¤íí©ëë¤.

     setgroupent() í¨ìë 목ì ì íì¼ì ì¤í, ëë ë²ì¨ ì¤íëê³  ìë¤ ê²½ì°ë ëê°ê¸°
     í©ëë¤.  stayopen íì§ë§ 0 ì´ ìëë©´, íì¼ ê¸°ì ìë ì¤í ëë¡ ëì´ ì´íì í¨ì
     í¸ì¶ì´ ê·¹í ê³ ìíë©ëë¤. ë¤ë§ getgrent() ì ê²½ì°ë, ëí´í¸ë¡ íì¼ ê¸°ì ì를
     í´ë¡ì°ì¦ íì§ ì기 ë문ì, ì´ ê¸°ë¥ì ë¶íìí©ëë¤. ë, 그룹 íì¼ì´ ê°±ì ë
     ê°ë¥ì±ì´ ìì¼ë¯ë¡, ì¥ê¸°ê° ì¤ííë íë¡ê·¸ë¨ì¼ë¡ ì´ ê¸°ë¥ì ì¬ì©íë ê²ì
     ìíí©ëë¤. 주ìí´ ì£¼ì¸ì.

     setgrent() í¨ìë, 0 ì ì¸ì를 ê°ì§ë¤ setgroupent() (ì)ê³¼ ê°ìµëë¤.

     endgrent() í¨ìë, ì¤íëê³  ìë íì¼ì í´ë¡ì°ì¦ í©ëë¤.

YP/NIS ì ìí¸ìì©
     yp(4) 그룹 ë°ì´íë² ì´ì¤ê° ì¬ì© ê°ë¥í ê²½ì°, ì구ë ê·¸ë£¹ì´ ë¡ì»¬ì
     /etc/groupfile ì ë°ê²¬ëì§ ìì¼ë©´ getgrnam() ë° getgrgid() í¨ìë, YP MAP
     “group.byname” ë° “group.bygid” (ì)를 ê°ê° ì¬ì©í©ëë¤.  group(5)
     ê·¸ë¦¬ê³  기ì ëìë ëë¡ ì ì²´ MAPê° ì¬ì© ê°ë¥íë©´, getgrent() í¨ìë YP MAP
     “group.byname” (ì)를 ëë¡.

ë°íê°
     í¨ì getgrent(), getgrnam(), getgrgid() (ì)ë, 모ë ì±ê³µíë©´(ì) 그룹
     ìí¸ë¦¬ì í¬ì¸í°ë¥¼ ëë ¤ì¤ëë¤. ìë ì¤ë¸ íì¼ì ëë¬í ê¹ ìë¬ íì§ë§ ë°ìíì ê²½ì°ë,
     ë르í¬ì¸íê° ëìê°ëë¤. í¨ì setgroupent() ë° setgrent() (ì)ë, ì²ë¦¬ê°
     무ì¬íê² ìë£íì ê²½ì°ë ê° 1 ì ëë ¤ì¤ëë¤.  ê·¸ ì¸ì ê²½ì°ë ê° 0 ì´ ëìê°ëë¤.
     í¨ì endgrent() ë° setgrfile() ì ë°íê°ì ììµëë¤.

ê´ë ¨ íì¼
     /etc/group  그룹 ë°ì´íë² ì´ì¤ íì¼

ê´ë ¨ í목
     getpwent(3), yp(4), group(5)

ìì¬
     í¨ì endgrent(), getgrent(), getgrnam(), getgrgid(), setgrent() (ì)ë,
     Version 7 AT&T UNIX ê·¸ë¦¬ê³  ìµì´ë¡ ë°ìë¤ì¬ì¡ìµëë¤. í¨ì setgrfile() ë°
     setgroupent() (ì)ë, 4.3BSD-Reno ê·¸ë¦¬ê³  ìµì´ë¡ ë°ìë¤ì¬ì¡ìµëë¤.

í¸íì±
     ëì²´ í¨ì¤ìë ë°ì´íë² ì´ì¤ì íì¤ì íë½í ìì¬ì ì¸ í¨ì setgrfile() (ì)ë,
     ì§ê¸ê¹ì§ ë¹ë ëì´ ììµëë¤ë§, ì´ë¯¸ ì¬ì©í  ì ììµëë¤.

ë²ê·¸
     í¨ì getgrent(), getgrnam(), getgrgid(), setgroupent(), setgrent() (ì)ë,
     ê°ê°ì 결과를 ë´ë¶ì ì ì  ì¤ë¸ì í¸ì ë¨ê²¨, ê·¸ ì¤ë¸ì í¸ì í¬ì¸í°ë¥¼
     ëë ¤ì¤ëë¤. íì ê³ìëë ê°ì í¨ìì í¸ì¶ì, ê·¸ ê°ì ì¤ë¸ì í¸ë¥¼ ê°ë³í©ëë¤.