Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


getgrnam(3) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |FILES |ATTRIBUTES |VERSIONS |STANDARDS |HISTORY |SEE ALSO |COLOPHON

getgrnam(3)              Library Functions Manualgetgrnam(3)

NAME        top

       getgrnam, getgrnam_r, getgrgid, getgrgid_r - get group file entry

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#include <sys/types.h>#include <grp.h>struct group *getgrnam(const char *name);struct group *getgrgid(gid_tgid);int getgrnam_r(size_t size;const char *restrictname, struct group *restrictgrp,charbuf[restrictsize], size_tsize,struct group **restrictresult);int getgrgid_r(size_t size;gid_tgid, struct group *restrictgrp,charbuf[restrictsize], size_tsize,struct group **restrictresult);   Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):getgrnam_r(),getgrgid_r():           _POSIX_C_SOURCE               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION        top

       Thegetgrnam() function returns a pointer to a structure       containing the broken-out fields of the record in the group       database (e.g., the local group file/etc/group, NIS, and LDAP)       that matches the group namename.       Thegetgrgid() function returns a pointer to a structure       containing the broken-out fields of the record in the group       database that matches the group IDgid.       Thegroup structure is defined in<grp.h> as follows:           struct group {               char   *gr_name;        /* group name */               char   *gr_passwd;      /* group password */               gid_t   gr_gid;         /* group ID */               char  **gr_mem;         /* NULL-terminated array of pointers                                          to names of group members */           };       For more information about the fields of this structure, seegroup(5).       Thegetgrnam_r() andgetgrgid_r() functions obtain the same       information asgetgrnam() andgetgrgid(), but store the retrievedgroup structure in the space pointed to bygrp.  The string fields       pointed to by the members of thegroup structure are stored in the       bufferbuf of sizesize.  A pointer to the result (in case of       success) or NULL (in case no entry was found or an error occurred)       is stored in*result.       The call           sysconf(_SC_GETGR_R_SIZE_MAX)       returns either -1, without changingerrno, or an initial suggested       size forbuf.  (If this size is too small, the call fails withERANGE, in which case the caller can retry with a larger buffer.)

RETURN VALUE        top

       Thegetgrnam() andgetgrgid() functions return a pointer to agroup structure, or NULL if the matching entry is not found or an       error occurs.  If an error occurs,errno is set to indicate the       error.  If one wants to checkerrno after the call, it should be       set to zero before the call.       The return value may point to a static area, and may be       overwritten by subsequent calls togetgrent(3),getgrgid(), orgetgrnam().  (Do not pass the returned pointer tofree(3).)       On success,getgrnam_r() andgetgrgid_r() return zero, and set*result togrp.  If no matching group record was found, these       functions return 0 and store NULL in*result.  In case of error,       an error number is returned, and NULL is stored in*result.

ERRORS        top

0orENOENTorESRCHorEBADForEPERMor ...              The givenname orgid was not found.EINTRA signal was caught; seesignal(7).EIOI/O error.EMFILEThe per-process limit on the number of open file              descriptors has been reached.ENFILEThe system-wide limit on the total number of open files has              been reached.ENOMEMInsufficient memory to allocategroup structure.ERANGEInsufficient buffer space supplied.

FILES        top

/etc/group              local group database file

ATTRIBUTES        top

       For an explanation of the terms used in this section, seeattributes(7).       ┌───────────────┬───────────────┬────────────────────────────────┐       │InterfaceAttributeValue│       ├───────────────┼───────────────┼────────────────────────────────┤       │getgrnam()    │ Thread safety │ MT-Unsafe race:grnam locale    │       ├───────────────┼───────────────┼────────────────────────────────┤       │getgrgid()    │ Thread safety │ MT-Unsafe race:grgid locale    │       ├───────────────┼───────────────┼────────────────────────────────┤       │getgrnam_r(), │ Thread safety │ MT-Safe locale                 │       │getgrgid_r()  │               │                                │       └───────────────┴───────────────┴────────────────────────────────┘

VERSIONS        top

       The formulation given above under "RETURN VALUE" is from POSIX.1.       It does not call "not found" an error, hence does not specify what       valueerrno might have in this situation.  But that makes it       impossible to recognize errors.  One might argue that according to       POSIXerrno should be left unchanged if an entry is not found.       Experiments on various UNIX-like systems show that lots of       different values occur in this situation: 0, ENOENT, EBADF, ESRCH,       EWOULDBLOCK, EPERM, and probably others.

STANDARDS        top

       POSIX.1-2008.

HISTORY        top

       POSIX.1-2001, SVr4, 4.3BSD.

SEE ALSO        top

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

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-06-28getgrnam(3)

Pages that refer to this page:getent(1)fgetgrent(3)getgrent(3)getgrent_r(3)getpwnam(3)getspnam(3)id_t(3type)group(5)nscd(8)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp