getgrouplist

Autres langues

Langue: ja

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

Section: 3 (Bibliothèques de fonctions)

̾Á°

getgrouplist - ¥æ¡¼¥¶¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È

½ñ¼°

#include <grp.h>

int getgrouplist(const char *user, gid_t group, gid_t *groups, int *ngroups);

ÀâÌÀ

getgrouplist() ´Ø¿ô¤Ï user ¤¬½ê°¤¹¤ëÁ´¤Æ¤Î¥°¥ë¡¼¥×¤ò¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÇÄ´¤Ù¤ë¡£ ¥°¥ë¡¼¥× ID *ngroups ¤Þ¤Ç¤ËÂбþ¤¹¤ë¥°¥ë¡¼¥×¤¬¡¢ÇÛÎó groups ¤Ë³ÊǼ¤µ¤ì¤ë; ¤³¤Î´Ø¿ô¤«¤é¤ÎÊÖ¤êÃͤϡ¢¼ÂºÝ¤Ë³ÊǼ¤µ¤ì¤¿¥°¥ë¡¼¥× ID ¤Î¿ô¤Ç¤¢¤ë¡£ ¥°¥ë¡¼¥× group ¤Ï getgrouplist() ¤ÇÊÖ¤µ¤ì¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤Ë¼«Æ°Åª¤Ë´Þ¤á¤é¤ì¤ë¡£

ÊÖ¤êÃÍ

¸«¤Ä¤«¤Ã¤¿Á´¤Æ¤Î¥°¥ë¡¼¥×¤Î¿ô¤è¤ê *ngroups ¤¬¾®¤µ¤¤¾ì¹ç¡¢ getgrouplist() ¤ÏÃÍ `-1' ¤òÊÖ¤¹¡£ À®¸ù¤·¤¿¾ì¹ç¤â¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤â¡¢¼ÂºÝ¤Î¥°¥ë¡¼¥×¤Î¿ô¤¬ *ngroups ¤Ë³ÊǼ¤µ¤ì¤ë¡£

¥Ð¡¼¥¸¥ç¥ó

¤³¤Î´Ø¿ô¤Ï glibc 2.2.4 ¤«¤é¸ºß¤¹¤ë¡£

½àµò

¤³¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£¤Û¤È¤ó¤É¤Î BSD ¤Ë¸ºß¤¹¤ë¡£

¥Ð¥°

¤³¤Î´Ø¿ô¤Î glibc 2.3.2 ¤Ç¤Î¼ÂÁõ¤Ï´Ö°ã¤¨¤Æ¤¤¤ë: ¼ÂºÝ¤Î¥°¥ë¡¼¥×¤Î¿ô¤¬ *ngroups ¤è¤êÂ礭¤¤¾ì¹ç¡¢¥á¥â¥ê¤ò¾å½ñ¤­¤·¤Æ¤·¤Þ¤¦¡£

Îã


/* ¤³¤ì¤Ï glibc 2.3.2 ¤Ç¤Ï¥¯¥é¥Ã¥·¥å¤¹¤ë¡£*/

#include <stdio.h>

#include <stdlib.h>

#include <grp.h>

#include <pwd.h>



int

main(void)

{

    int i, ng = 0;

    char *user = "who";       /* ¥æ¡¼¥¶Ì¾¤ò¤³¤³¤Ë½ñ¤¯¡£ */

    gid_t *groups = NULL;

    struct passwd *pw = getpwnam(user);



    if (pw == NULL)

        exit(EXIT_SUCCESS);



    if (getgrouplist(user, pw->pw_gid, NULL, &ng) < 0) {

        groups = (gid_t *) malloc(ng * sizeof (gid_t));

        getgrouplist(user, pw->pw_gid, groups, &ng);

    }



    for(i = 0; i < ng; i++)

        printf("%d\n", groups[i]);



    exit(EXIT_SUCCESS);

}

´ØÏ¢¹àÌÜ

getgroups(3), setgroups(3)