Annotation of 43BSDReno/lib/libc/gen/getgrent.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1989 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)getgrent.3  6.5 (Berkeley) 6/23/90
                     19: .\"
                     20: .TH GETGRENT 3  "June 23, 1990"
                     21: .AT 3
                     22: .SH NAME
                     23: getgrent, getgrnam, getgrgid, setgroupent, setgrfile, setgrent,
                     24: endgrent \- get group file entry
                     25: .SH SYNOPSIS
                     26: .nf
                     27: .B #include <grp.h>
                     28: .PP
                     29: .B struct group *getgrent()
                     30: .PP
                     31: .B struct group *getgrnam(name)
                     32: .B char *name;
                     33: .PP
                     34: .B struct group *getgrgid(gid)
                     35: .B gid_t gid;
                     36: .PP
                     37: .B setgroupent(stayopen)
                     38: .B int stayopen;
                     39: .PP
                     40: .B void setgrfile(name)
                     41: .B char *name;
                     42: .PP
                     43: .B setgrent()
                     44: .PP
                     45: .B void endgrent()
                     46: .fi
                     47: .SH DESCRIPTION
                     48: .I Getgrent,
                     49: .I getgrgid
                     50: and
                     51: .I getgrnam
                     52: each return a pointer to a structure containing the broken-out fields
                     53: of a line in the group file.  This structure is defined by the include
                     54: file
                     55: .IR < grp.h >,
                     56: and contains the following fields:
                     57: .PP
                     58: .RS
                     59: .nf
                     60: struct group {
                     61:        char            *gr_name;               /* group name */
                     62:        char            *gr_passwd;     /* group password */
                     63:        gid_t   gr_gid;         /* group id */
                     64:        char            **gr_mem;               /* group members */
                     65: };
                     66: .ft R
                     67: .ad
                     68: .fi
                     69: .RE
                     70: .PP
                     71: These fields are more completely described in
                     72: .IR group (5).
                     73: .PP
                     74: .I Getgrnam
                     75: and
                     76: .I getgrgid
                     77: search the group database for a matching group name or group id,
                     78: respectively, returning the first one encountered.  Identical group
                     79: names or group gids may result in undefined behavior.
                     80: .PP
                     81: .I Getgrent
                     82: sequentially reads the group database and is intended for programs
                     83: that wish to step through the complete list of groups.
                     84: .PP
                     85: All three routines will open the group file for reading, if necesssary.
                     86: .PP
                     87: .I Setgrfile
                     88: changes the default group file to
                     89: .IR file ,
                     90: thus allowing the use of alternate group files.
                     91: .PP
                     92: .I Setgroupent
                     93: opens the file, or rewinds it if it is already open.  If
                     94: .I stayopen
                     95: is non-zero, file descriptors are left open, significantly speeding
                     96: up subsequent calls.  This functionality is unnecessary for
                     97: .I getgrent
                     98: as it doesn't close its file descriptors by default.  It should also
                     99: be noted that it is dangerous for long-running programs to use this
                    100: functionality as the group file may be updated.
                    101: .PP
                    102: .I Setgrent
                    103: is identical to
                    104: .I setgroupent
                    105: with an argument of zero.
                    106: .PP
                    107: .I Endgrent
                    108: closes any open files.
                    109: .PP
                    110: .PP
                    111: .SH FILES
                    112: /etc/group
                    113: .SH "SEE ALSO"
                    114:  getpwent(3), group(5)
                    115: .SH DIAGNOSTICS
                    116: The routines
                    117: .IR getgrent ,
                    118: .IR getgrnam ,
                    119: and
                    120: .IR getgrgid ,
                    121: return a null pointer on EOF or error.
                    122: .I Setgroupent
                    123: and
                    124: .I setgrent
                    125: return 0 on failure, 1 on success.
                    126: .I Endgrent
                    127: and
                    128: .I setgrfile
                    129: have no return value.
                    130: .SH BUGS
                    131: All information is contained in a static buffer which is overwritten
                    132: by each new call.  It must be copied elsewhere to be retained.
                    133: .PP
                    134: The routines
                    135: .IR getgrent ,
                    136: .IR endgrent ,
                    137: .IR setgroupent ,
                    138: and
                    139: .IR setgrent
                    140: are fairly useless in a networked environment and should be
                    141: avoided, if possible.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.