getgrnam

Autres langues

Langue: ja

Version: 2003-11-15 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

getgrnam, getgrnam_r, getgrgid, getgrgid_r - ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼è¤ê½Ð¤·

½ñ¼°


#include <sys/types.h>

#include <grp.h>



struct group *getgrnam(const char *name);



struct group *getgrgid(gid_t gid);



int getgrnam_r(const char *name, struct group *gbuf,


char *buf, size_t buflen, struct group **gbufp); int getgrgid_r(gid_t gid, struct group *gbuf,
char *buf, size_t buflen, struct group **gbufp);

ÀâÌÀ

getgrnam() ´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥×̾ name ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ (¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: ¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë /etc/group, NIS, LDAP)¡£

getgrgid() ´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥× ID uid ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£

getgrnam_r() ¤È getgrgid_r() ´Ø¿ô¤Ï (¾åµ­¤Î´Ø¿ô¤È) Ʊ¤¸¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¬¡¢ ¼èÆÀ¤·¤¿ group ¹½Â¤ÂΤò gbuf ¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ ¤³¤Î group ¹½Â¤ÂΤˤÏʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¡¢ ¤³¤ì¤é¤Îʸ»úÎó¤Ï¥µ¥¤¥º buflen ¤Î¥Ð¥Ã¥Õ¥¡ buf ¤Ë³ÊǼ¤µ¤ì¤ë¡£ À®¸ù¤·¤¿¾ì¹ç *gbufp ¤Ë¤Ï·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ ¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï *gbufp ¤Ë¤Ï NULL ¤¬Æþ¤ë¡£

group ¹½Â¤ÂΤϡ¢<grp.h> ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:


struct group {

    char   *gr_name;       /* ¥°¥ë¡¼¥×̾ */

    char   *gr_passwd;     /* ¥°¥ë¡¼¥×¤Î¥Ð¥¹¥ï¡¼¥É */

    gid_t   gr_gid;        /* ¥°¥ë¡¼¥× ID */

    char  **gr_mem;        /* ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð */

};

buf ¤ËºÇÂçɬÍפʥµ¥¤¥º¤Ï¡¢ sysconf(3) ¤Ë°ú¤­¿ô _SC_GETGR_R_SIZE_MAX ¤ò»ØÄꤷ¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Çʬ¤«¤ë¡£

ÊÖ¤êÃÍ

getgrnam() ¤È getgrgid() ´Ø¿ô¤Ï¡¢ group ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ °ìÃפ¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ ¸Æ¤Ó½Ð¤·¤Î¸å¤Ç errno ¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢ ¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë (¤³¤ÎÃͤò) 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£

ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î getgrent(), getgrgid(), getgrnam() ¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

getgrnam_r() ¤È getgrgid_r() ´Ø¿ô¤Ï¡¢ À®¸ù¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢¥¨¥é¡¼Èֹ椬ÊÖ¤µ¤ì¤ë¡£

¥¨¥é¡¼

0 ¤Þ¤¿¤Ï ENOENT ¤Þ¤¿¤Ï ESRCH ¤Þ¤¿¤Ï EBADF ¤Þ¤¿¤Ï EPERM ¤Þ¤¿¤Ï ...
»ØÄꤵ¤ì¤¿ name ¤Þ¤¿¤Ï gid ¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£
EINTR
¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£
EIO
I/O ¥¨¥é¡¼¡£
EMFILE
¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢ ´û¤ËºÇÂç¿ô (OPEN_MAX) ¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£
ENFILE
¥·¥¹¥Æ¥à¾å¤Ç´û¤ËºÇÂç¿ô¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£
ENOMEM
group ¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£
ERANGE
Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬ÉÔ½½Ê¬¤Ç¤¢¤ë¡£

¥Õ¥¡¥¤¥ë

/etc/group
¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë

½àµò

SVr4, 4.3BSD, POSIX.1-2001

Ãí°Õ

¾åµ­¤Î¡ÖÊÖ¤êÃ͡װʲ¼¤Îµ­½Ò¤Ï POSIX.1-2001 ¤Ëµò¤ë¡£ ¤³¤Îɸ½à¤Ï¡Ö(¥¨¥ó¥È¥ê¤¬) ¸«¤Ä¤«¤é¤Ê¤¤¤³¤È¡×¤ò¥¨¥é¡¼¤È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ ¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë errno ¤¬¤É¤Î¤è¤¦¤ÊÃͤˤʤ뤫¤òÄê¤á¤Æ¤¤¤Ê¤¤¡£ ¤½¤Î¤¿¤á¡¢¥¨¥é¡¼¤òǧ¼±¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ POSIX ¤Ë½àµò¤·¤Æ¡¢¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï errno ¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡¢¤È¼çÄ¥¤¹¤ë¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ ÍÍ¡¹¤Ê Unix ·Ï¤Î¥·¥¹¥Æ¥à¤Ç»î¤·¤Æ¤ß¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM ¤È¤¤¤Ã¤¿ÍÍ¡¹¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ ¾¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

´ØÏ¢¹àÌÜ

endgrent(3), fgetgrent(3), getgrent(3), getpwnam(3), setgrent(3), group(5)