Rechercher une page de manuel
getpwent_r
Langue: ja
Version: 2003-11-15 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
̾Á°
getpwent_r, fgetpwent_r - ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ë¼è¤ê½Ð¤¹½ñ¼°
#define _GNU_SOURCE
#include <pwd.h> int getpwent_r(struct passwd *pwbuf, char *buf,
size_t buflen, struct passwd **pwbufp); int fgetpwent_r(FILE *fp, struct passwd *pwbuf, char *buf,
size_t buflen, struct passwd **pwbufp);
ÀâÌÀ
´Ø¿ô getpwent_r() ¤È fgetpwent_r() ¤Ï getpwent(3) ¤È fgetpwent(3) ¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ Á°¼Ô¤Ï¡¢ setpwent(3) ¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é¡¢¼¡¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ ¸å¼Ô¤Ï¡¢°ú¤¿ô fp ¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é¡¢¼¡¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£passwd ¹½Â¤ÂÎ¤Ï <pwd.h> ¤Ë¤ª¤¤¤Æ°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
-
struct passwd { char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ char *pw_gecos; /* ¼ÂºÝ¤Î̾Á° */ char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ };
¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤´Ø¿ô¤ÏÀÅŪ¤Ê³ÊǼÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ ¤³¤ÎÀÅŪ¤Ê³ÊǼÎΰè¤Ë¤Ï¡¢¹¹¤Ë¥æ¡¼¥¶Ì¾¡¦¥Ñ¥¹¥ï¡¼¥É¡¦gecos ¥Õ¥£¡¼¥ë¥É¡¦ ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¡¦¥·¥§¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¤ë¡£ ¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê´Ø¿ô¤Ï¡¢ ¸Æ¤Ó½Ð¤·Â¦¤«¤éÄ󶡤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë¥æ¡¼¥¶Ì¾¤Ê¤ÉÁ´¤Æ¤òÊÖ¤¹¡£ ºÇ½é¤Î°ú¤¿ô¤È¤·¤Æ struct passwd ¤òÊÝ»ý¤Ç¤¤ë¥Ð¥Ã¥Õ¥¡ pwbuf ¤¬¤¢¤ë¡£ ¼¡¤Ë¤½¤Î¾¤Îʸ»úÎó¤òÊÝ»ý¤Ç¤¤ë¥µ¥¤¥º buflen ¤Î¥Ð¥Ã¥Õ¥¡ buf ¤¬¤¢¤ë¡£ ¤³¤ì¤é¤Î´Ø¿ô¤Î·ë²Ì (¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤Þ¤ì¤¿ struct passwd) ¤Ï¡¢ Ä󶡤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡ *pwbuf ¤Ë³ÊǼ¤µ¤ì¡¢¤³¤Î struct passwd ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï *pwbufp ¤ËÊÖ¤µ¤ì¤ë¡£
ÊÖ¤êÃÍ
À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤·¡¢ *pwbufp ¤Ï struct passwd ¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¨¥é¡¼ÃͤòÊÖ¤·¡¢ *pwbufp ¤Ï NULL ¤Ë¤Ê¤ë¡£¥¨¥é¡¼
- ENOENT
- ¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£
- ERANGE
- ½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ ¤â¤Ã¤ÈÂ礤ʥХåե¡¤ÇºÆÅټ¹Ԥ¹¤ë¤³¤È¡£
½àµò
¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢POSIX ÈǤδؿô getpwnam_r(3) ¤Î·Á¼°¤Ë»÷¤»¤Æ¤¢¤ë¡£ ¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¥×¥í¥È¥¿¥¤¥×¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£struct passwd * getpwent_r(struct passwd *pwd, char *buf, int buflen);
¤è¤êÎɤ¤¤â¤Î¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
int getpwent_r(struct passwd *pwd, char *buf, int buflen, FILE **pw_fp);
Ãí°Õ
´Ø¿ô getpwent_r() ¤ÏËÜÅö¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ ¤Ê¤¼¤Ê¤é¡¢¥¹¥È¥ê¡¼¥à¤ÎÆɤ߹þ¤ß°ÌÃÖ¤ò ¾¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤È¶¦Í¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£Îã
#define _GNU_SOURCE #include <pwd.h> #include <stdio.h> #define BUFLEN 4096 +int +main(void) { struct passwd pw, *pwp; char buf[BUFLEN]; int i; setpwent(); while (1) { i = getpwent_r(&pw, buf, BUFLEN, &pwp); if (i) break; printf("%s (%d)\tHOME %s\tSHELL %s\n", pwp->pw_name, pwp->pw_uid, pwp->pw_dir, pwp->pw_shell); } endpwent(); exit(EXIT_SUCCESS); }
´ØÏ¢¹àÌÜ
fgetpwent(3), getpw(3), getpwent(3), getpwnam(3), getpwuid(3), putpwent(3), passwd(5), feature_test_macros(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre