LinuxGuruz
  • Last 5 Forum Topics
    Replies
    Views
    Last post


The Web Only This Site
  • BOOKMARK

  • ADD TO FAVORITES

  • REFERENCES


  • MARC

    Mailing list ARChives
    - Search by -
     Subjects
     Authors
     Bodies





    FOLDOC

    Computing Dictionary




  • Text Link Ads






  • LINUX man pages
  • Linux Man Page Viewer


    The following form allows you to view linux man pages.

    Command:

    getgrent_r

    
    
    

    SYNOPSIS

           #include <grp.h>
    
           int getgrent_r(struct group *gbuf, char *buf,
                          size_t buflen, struct group **gbufp);
    
           int fgetgrent_r(FILE *fp, struct group *gbuf, char *buf,
                           size_t buflen, struct group **gbufp);
    
       Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
    
           getgrent_r(): _GNU_SOURCE
           fgetgrent_r(): _SVID_SOURCE
    
    
    

    DESCRIPTION

           The functions getgrent_r() and fgetgrent_r() are the reentrant versions
           of getgrent(3) and fgetgrent(3).  The former reads the next group entry
           from  the stream initialized by setgrent(3).  The latter reads the next
           group entry from the stream fp.
    
           The group 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;      /* group members */
               };
    
           For more information about the fields of this structure, see  group(5).
    
           The  nonreentrant  functions  return a pointer to static storage, where
           this static storage contains further pointers to group  name,  password
           and members.  The reentrant functions described here return all of that
           in caller-provided buffers.  First of all there is the buffer gbuf that
           can  hold  a struct group.  And next the buffer buf of size buflen that
           can hold additional strings.  The result of these functions, the struct
           group read from the stream, is stored in the provided buffer *gbuf, and
           a pointer to this struct group is returned in *gbufp.
    
    
    

    RETURN VALUE

           On success, these functions return 0 and *gbufp is  a  pointer  to  the
           struct  group.   On  error,  these  functions return an error value and
           *gbufp is NULL.
    
    
    

    ERRORS

           ENOENT No more entries.
    
           ERANGE Insufficient buffer  space  supplied.   Try  again  with  larger
                  buffer.
    
    
    

    CONFORMING TO

           reading position in the stream with all other threads.
    
    
    

    EXAMPLE

           #define _GNU_SOURCE
           #include <grp.h>
           #include <stdio.h>
           #include <stdlib.h>
           #define BUFLEN 4096
    
           int
           main(void)
           {
               struct group grp, *grpp;
               char buf[BUFLEN];
               int i;
    
               setgrent();
               while (1) {
                   i = getgrent_r(&grp, buf, BUFLEN, &grpp);
                   if (i)
                       break;
                   printf("%s (%d):", grpp->gr_name, grpp->gr_gid);
                   for (i = 0; ; i++) {
                       if (grpp->gr_mem[i] == NULL)
                           break;
                       printf(" %s", grpp->gr_mem[i]);
                   }
                   printf("\n");
               }
               endgrent();
               exit(EXIT_SUCCESS);
           }
    
    
    

    SEE ALSO

           fgetgrent(3),  getgrent(3),  getgrgid(3),   getgrnam(3),   putgrent(3),
           group(5)
    
    
    

    GNU 2010-10-21 GETGRENT_R(3)

    
    
  • MORE RESOURCE


  • Linux

    The Distributions





    Linux

    The Software





    Linux

    The News



  • MARKETING






  • Toll Free

webmaster@linuxguruz.com
Copyright © 1999 - 2016 by LinuxGuruz