OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.54
[linuxjm/LDP_man-pages.git] / po4a / pwdgrp / po / pwdgrp.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2013-09-28 04:06+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man3/fgetgrent.3:30
21 #, no-wrap
22 msgid "FGETGRENT"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man3/fgetgrent.3:30 build/C/man3/fgetpwent.3:33 build/C/man3/getspnam.3:8 build/C/man3/putpwent.3:30
27 #, no-wrap
28 msgid "2013-04-19"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man3/fgetgrent.3:30 build/C/man3/fgetpwent.3:33 build/C/man3/getgrent_r.3:24 build/C/man3/getgrouplist.3:29 build/C/man3/getpw.3:32 build/C/man3/getpwent.3:33 build/C/man3/getpwent_r.3:24 build/C/man3/getpwnam.3:37 build/C/man3/getspnam.3:8 build/C/man3/initgroups.3:32 build/C/man3/putgrent.3:7 build/C/man3/putpwent.3:30 build/C/man3/setaliasent.3:9
33 #, no-wrap
34 msgid "GNU"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man3/fgetgrent.3:30 build/C/man3/fgetpwent.3:33 build/C/man5/ftpusers.5:19 build/C/man3/getgrent.3:30 build/C/man3/getgrent_r.3:24 build/C/man3/getgrnam.3:33 build/C/man3/getgrouplist.3:29 build/C/man3/getpw.3:32 build/C/man3/getpwent.3:33 build/C/man3/getpwent_r.3:24 build/C/man3/getpwnam.3:37 build/C/man3/getspnam.3:8 build/C/man5/group.5:26 build/C/man3/initgroups.3:32 build/C/man5/passwd.5:30 build/C/man3/putgrent.3:7 build/C/man3/putpwent.3:30 build/C/man3/setaliasent.3:9
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man3/fgetgrent.3:31 build/C/man3/fgetpwent.3:34 build/C/man5/ftpusers.5:20 build/C/man3/getgrent.3:31 build/C/man3/getgrent_r.3:25 build/C/man3/getgrnam.3:34 build/C/man3/getgrouplist.3:30 build/C/man3/getpw.3:33 build/C/man3/getpwent.3:34 build/C/man3/getpwent_r.3:25 build/C/man3/getpwnam.3:38 build/C/man3/getspnam.3:9 build/C/man5/group.5:27 build/C/man3/initgroups.3:33 build/C/man5/passwd.5:31 build/C/man3/putgrent.3:8 build/C/man3/putpwent.3:31 build/C/man3/setaliasent.3:10
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man3/fgetgrent.3:33
51 msgid "fgetgrent - get group file entry"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man3/fgetgrent.3:33 build/C/man3/fgetpwent.3:36 build/C/man3/getgrent.3:33 build/C/man3/getgrent_r.3:27 build/C/man3/getgrnam.3:36 build/C/man3/getgrouplist.3:32 build/C/man3/getpw.3:35 build/C/man3/getpwent.3:36 build/C/man3/getpwent_r.3:27 build/C/man3/getpwnam.3:40 build/C/man3/getspnam.3:13 build/C/man3/initgroups.3:35 build/C/man3/putgrent.3:10 build/C/man3/putpwent.3:33 build/C/man3/setaliasent.3:13
56 #, no-wrap
57 msgid "SYNOPSIS"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man3/fgetgrent.3:38
62 #, no-wrap
63 msgid ""
64 "B<#include E<lt>stdio.hE<gt>>\n"
65 "B<#include E<lt>sys/types.hE<gt>>\n"
66 "B<#include E<lt>grp.hE<gt>>\n"
67 msgstr ""
68
69 #. type: Plain text
70 #: build/C/man3/fgetgrent.3:40
71 #, no-wrap
72 msgid "B<struct group *fgetgrent(FILE *>I<stream>B<);>\n"
73 msgstr ""
74
75 #. type: Plain text
76 #: build/C/man3/fgetgrent.3:45 build/C/man3/fgetpwent.3:48 build/C/man3/getgrent.3:48 build/C/man3/getgrent_r.3:43 build/C/man3/getgrnam.3:57 build/C/man3/getgrouplist.3:42 build/C/man3/getpwent.3:51 build/C/man3/getpwent_r.3:43 build/C/man3/getpwnam.3:61 build/C/man3/getspnam.3:61 build/C/man3/initgroups.3:46 build/C/man3/putpwent.3:45
77 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
78 msgstr ""
79
80 #. type: Plain text
81 #: build/C/man3/fgetgrent.3:49
82 msgid "B<fgetgrent>(): _SVID_SOURCE"
83 msgstr ""
84
85 #. type: SH
86 #: build/C/man3/fgetgrent.3:49 build/C/man3/fgetpwent.3:52 build/C/man5/ftpusers.5:22 build/C/man3/getgrent.3:68 build/C/man3/getgrent_r.3:51 build/C/man3/getgrnam.3:67 build/C/man3/getgrouplist.3:46 build/C/man3/getpw.3:43 build/C/man3/getpwent.3:62 build/C/man3/getpwent_r.3:50 build/C/man3/getpwnam.3:71 build/C/man3/getspnam.3:72 build/C/man5/group.5:29 build/C/man3/initgroups.3:50 build/C/man5/passwd.5:33 build/C/man3/putgrent.3:16 build/C/man3/putpwent.3:49 build/C/man3/setaliasent.3:31
87 #, no-wrap
88 msgid "DESCRIPTION"
89 msgstr ""
90
91 #. type: Plain text
92 #: build/C/man3/fgetgrent.3:63
93 msgid ""
94 "The B<fgetgrent>()  function returns a pointer to a structure containing the "
95 "group information from the file referred to by I<stream>.  The first time it "
96 "is called it returns the first entry; thereafter, it returns successive "
97 "entries.  The file referred to by I<stream> must have the same format as "
98 "I</etc/group> (see B<group>(5))."
99 msgstr ""
100
101 #. type: Plain text
102 #: build/C/man3/fgetgrent.3:65 build/C/man3/getgrent.3:92 build/C/man3/getgrent_r.3:68 build/C/man3/getgrnam.3:86
103 msgid "The I<group> structure is defined in I<E<lt>grp.hE<gt>> as follows:"
104 msgstr ""
105
106 #. type: Plain text
107 #: build/C/man3/fgetgrent.3:74
108 #, no-wrap
109 msgid ""
110 "struct group {\n"
111 "    char   *gr_name;        /* group name */\n"
112 "    char   *gr_passwd;      /* group password */\n"
113 "    gid_t   gr_gid;         /* group ID */\n"
114 "    char  **gr_mem;         /* group members */\n"
115 "};\n"
116 msgstr ""
117
118 #. type: SH
119 #: build/C/man3/fgetgrent.3:76 build/C/man3/fgetpwent.3:81 build/C/man3/getgrent.3:106 build/C/man3/getgrent_r.3:101 build/C/man3/getgrnam.3:136 build/C/man3/getgrouplist.3:78 build/C/man3/getpw.3:72 build/C/man3/getpwent.3:103 build/C/man3/getpwent_r.3:103 build/C/man3/getpwnam.3:143 build/C/man3/getspnam.3:216 build/C/man3/initgroups.3:68 build/C/man3/putgrent.3:42 build/C/man3/putpwent.3:70 build/C/man3/setaliasent.3:89
120 #, no-wrap
121 msgid "RETURN VALUE"
122 msgstr ""
123
124 #. type: Plain text
125 #: build/C/man3/fgetgrent.3:86
126 msgid ""
127 "The B<fgetgrent>()  function returns a pointer to a I<group> structure, or "
128 "NULL if there are no more entries or an error occurs.  In the event of an "
129 "error, I<errno> is set to indicate the cause."
130 msgstr ""
131
132 #. type: SH
133 #: build/C/man3/fgetgrent.3:86 build/C/man3/fgetpwent.3:91 build/C/man3/getgrent.3:129 build/C/man3/getgrent_r.3:108 build/C/man3/getgrnam.3:174 build/C/man3/getpw.3:78 build/C/man3/getpwent.3:125 build/C/man3/getpwent_r.3:110 build/C/man3/getpwnam.3:181 build/C/man3/getspnam.3:229 build/C/man3/initgroups.3:75 build/C/man3/putpwent.3:78
134 #, no-wrap
135 msgid "ERRORS"
136 msgstr ""
137
138 #. type: TP
139 #: build/C/man3/fgetgrent.3:87 build/C/man3/fgetpwent.3:92 build/C/man3/getgrent.3:142 build/C/man3/getgrnam.3:196 build/C/man3/getpw.3:87 build/C/man3/getpwent.3:140 build/C/man3/getpwnam.3:203 build/C/man3/initgroups.3:76
140 #, no-wrap
141 msgid "B<ENOMEM>"
142 msgstr ""
143
144 #.  not in POSIX
145 #.  to allocate the group structure, or to allocate buffers
146 #. type: Plain text
147 #: build/C/man3/fgetgrent.3:92 build/C/man3/getgrent.3:148 build/C/man3/getgrnam.3:203
148 msgid "Insufficient memory to allocate I<group> structure."
149 msgstr ""
150
151 #. type: SH
152 #: build/C/man3/fgetgrent.3:92 build/C/man3/fgetpwent.3:101 build/C/man3/getgrent.3:166 build/C/man3/getgrent_r.3:116 build/C/man3/getgrnam.3:223 build/C/man3/getgrouplist.3:98 build/C/man3/getpw.3:96 build/C/man3/getpwent.3:165 build/C/man3/getpwent_r.3:118 build/C/man3/getpwnam.3:230 build/C/man3/getspnam.3:249 build/C/man3/initgroups.3:88 build/C/man3/putgrent.3:44 build/C/man3/putpwent.3:82 build/C/man3/setaliasent.3:101
153 #, no-wrap
154 msgid "CONFORMING TO"
155 msgstr ""
156
157 #. type: Plain text
158 #: build/C/man3/fgetgrent.3:94 build/C/man3/fgetpwent.3:103 build/C/man3/putpwent.3:84
159 msgid "SVr4."
160 msgstr ""
161
162 #. type: SH
163 #: build/C/man3/fgetgrent.3:94 build/C/man3/fgetpwent.3:103 build/C/man5/ftpusers.5:49 build/C/man3/getgrent.3:168 build/C/man3/getgrent_r.3:183 build/C/man3/getgrnam.3:246 build/C/man3/getgrouplist.3:189 build/C/man3/getpw.3:105 build/C/man3/getpwent.3:170 build/C/man3/getpwent_r.3:180 build/C/man3/getpwnam.3:326 build/C/man3/getspnam.3:253 build/C/man5/group.5:61 build/C/man3/initgroups.3:90 build/C/man5/passwd.5:162 build/C/man3/putgrent.3:46 build/C/man3/putpwent.3:84 build/C/man3/setaliasent.3:145
164 #, no-wrap
165 msgid "SEE ALSO"
166 msgstr ""
167
168 #. type: Plain text
169 #: build/C/man3/fgetgrent.3:104
170 msgid ""
171 "B<endgrent>(3), B<fgetgrent_r>(3), B<fopen>(3), B<getgrent>(3), "
172 "B<getgrgid>(3), B<getgrnam>(3), B<putgrent>(3), B<setgrent>(3), B<group>(5)"
173 msgstr ""
174
175 #. type: SH
176 #: build/C/man3/fgetgrent.3:104 build/C/man3/fgetpwent.3:114 build/C/man5/ftpusers.5:53 build/C/man3/getgrent.3:176 build/C/man3/getgrent_r.3:190 build/C/man3/getgrnam.3:253 build/C/man3/getgrouplist.3:195 build/C/man3/getpw.3:114 build/C/man3/getpwent.3:178 build/C/man3/getpwent_r.3:188 build/C/man3/getpwnam.3:336 build/C/man3/getspnam.3:258 build/C/man5/group.5:67 build/C/man3/initgroups.3:94 build/C/man5/passwd.5:171 build/C/man3/putgrent.3:50 build/C/man3/putpwent.3:92 build/C/man3/setaliasent.3:154
177 #, no-wrap
178 msgid "COLOPHON"
179 msgstr ""
180
181 #. type: Plain text
182 #: build/C/man3/fgetgrent.3:111 build/C/man3/fgetpwent.3:121 build/C/man5/ftpusers.5:60 build/C/man3/getgrent.3:183 build/C/man3/getgrent_r.3:197 build/C/man3/getgrnam.3:260 build/C/man3/getgrouplist.3:202 build/C/man3/getpw.3:121 build/C/man3/getpwent.3:185 build/C/man3/getpwent_r.3:195 build/C/man3/getpwnam.3:343 build/C/man3/getspnam.3:265 build/C/man5/group.5:74 build/C/man3/initgroups.3:101 build/C/man5/passwd.5:178 build/C/man3/putgrent.3:57 build/C/man3/putpwent.3:99 build/C/man3/setaliasent.3:161
183 msgid ""
184 "This page is part of release 3.54 of the Linux I<man-pages> project.  A "
185 "description of the project, and information about reporting bugs, can be "
186 "found at \\%http://www.kernel.org/doc/man-pages/."
187 msgstr ""
188
189 #. type: TH
190 #: build/C/man3/fgetpwent.3:33
191 #, no-wrap
192 msgid "FGETPWENT"
193 msgstr ""
194
195 #. type: Plain text
196 #: build/C/man3/fgetpwent.3:36
197 msgid "fgetpwent - get password file entry"
198 msgstr ""
199
200 #. type: Plain text
201 #: build/C/man3/fgetpwent.3:41 build/C/man3/putpwent.3:38
202 #, no-wrap
203 msgid ""
204 "B<#include E<lt>stdio.hE<gt>>\n"
205 "B<#include E<lt>sys/types.hE<gt>>\n"
206 "B<#include E<lt>pwd.hE<gt>>\n"
207 msgstr ""
208
209 #. type: Plain text
210 #: build/C/man3/fgetpwent.3:43
211 #, no-wrap
212 msgid "B<struct passwd *fgetpwent(FILE *>I<stream>B<);>\n"
213 msgstr ""
214
215 #. type: Plain text
216 #: build/C/man3/fgetpwent.3:52
217 msgid "B<fgetpwent>(): _SVID_SOURCE"
218 msgstr ""
219
220 #. type: Plain text
221 #: build/C/man3/fgetpwent.3:65
222 msgid ""
223 "The B<fgetpwent>()  function returns a pointer to a structure containing the "
224 "broken out fields of a line in the file I<stream>.  The first time it is "
225 "called it returns the first entry; thereafter, it returns successive "
226 "entries.  The file referred to by I<stream> must have the same format as "
227 "I</etc/passwd> (see B<passwd>(5))."
228 msgstr ""
229
230 #. type: Plain text
231 #: build/C/man3/fgetpwent.3:67 build/C/man3/getpw.3:55 build/C/man3/getpwent.3:86 build/C/man3/getpwent_r.3:67 build/C/man3/getpwnam.3:90 build/C/man3/putpwent.3:56
232 msgid "The I<passwd> structure is defined in I<E<lt>pwd.hE<gt>> as follows:"
233 msgstr ""
234
235 #. type: Plain text
236 #: build/C/man3/fgetpwent.3:79
237 #, no-wrap
238 msgid ""
239 "struct passwd {\n"
240 "    char   *pw_name;       /* username */\n"
241 "    char   *pw_passwd;     /* user password */\n"
242 "    uid_t   pw_uid;        /* user ID */\n"
243 "    gid_t   pw_gid;        /* group ID */\n"
244 "    char   *pw_gecos;      /* real name */\n"
245 "    char   *pw_dir;        /* home directory */\n"
246 "    char   *pw_shell;      /* shell program */\n"
247 "};\n"
248 msgstr ""
249
250 #. type: Plain text
251 #: build/C/man3/fgetpwent.3:91
252 msgid ""
253 "The B<fgetpwent>()  function returns a pointer to a I<passwd> structure, or "
254 "NULL if there are no more entries or an error occurs.  In the event of an "
255 "error, I<errno> is set to indicate the cause."
256 msgstr ""
257
258 #.  not in POSIX
259 #.  This structure is static, allocated 0 or 1 times. No memory leak. (libc45)
260 #. type: Plain text
261 #: build/C/man3/fgetpwent.3:97 build/C/man3/getpw.3:92 build/C/man3/getpwent.3:147 build/C/man3/getpwnam.3:210
262 msgid "Insufficient memory to allocate I<passwd> structure."
263 msgstr ""
264
265 #. type: SH
266 #: build/C/man3/fgetpwent.3:97 build/C/man5/ftpusers.5:47 build/C/man3/getgrent.3:151 build/C/man3/getgrnam.3:206 build/C/man3/getpw.3:92 build/C/man3/getpwent.3:150 build/C/man3/getpwnam.3:213 build/C/man3/getspnam.3:236 build/C/man5/group.5:53 build/C/man3/initgroups.3:84 build/C/man5/passwd.5:142 build/C/man3/setaliasent.3:95
267 #, no-wrap
268 msgid "FILES"
269 msgstr ""
270
271 #. type: Plain text
272 #: build/C/man3/fgetpwent.3:98 build/C/man3/getpw.3:93 build/C/man3/getpwent.3:151 build/C/man3/getpwnam.3:214 build/C/man5/passwd.5:144
273 #, no-wrap
274 msgid "I</etc/passwd>"
275 msgstr ""
276
277 #. type: Plain text
278 #: build/C/man3/fgetpwent.3:101 build/C/man3/getpw.3:96
279 msgid "password database file"
280 msgstr ""
281
282 #. type: Plain text
283 #: build/C/man3/fgetpwent.3:114
284 msgid ""
285 "B<endpwent>(3), B<fgetpwent_r>(3), B<fopen>(3), B<getpw>(3), B<getpwent>(3), "
286 "B<getpwnam>(3), B<getpwuid>(3), B<putpwent>(3), B<setpwent>(3), B<passwd>(5)"
287 msgstr ""
288
289 #. type: TH
290 #: build/C/man5/ftpusers.5:19
291 #, no-wrap
292 msgid "FTPUSERS"
293 msgstr ""
294
295 #. type: TH
296 #: build/C/man5/ftpusers.5:19
297 #, no-wrap
298 msgid "2000-08-27"
299 msgstr ""
300
301 #. type: TH
302 #: build/C/man5/ftpusers.5:19 build/C/man5/group.5:26 build/C/man5/passwd.5:30
303 #, no-wrap
304 msgid "Linux"
305 msgstr ""
306
307 #. type: Plain text
308 #: build/C/man5/ftpusers.5:22
309 msgid "ftpusers - list of users that may not log in via the FTP daemon"
310 msgstr ""
311
312 #. type: Plain text
313 #: build/C/man5/ftpusers.5:41
314 msgid ""
315 "The text file B<ftpusers> contains a list of users that may not log in using "
316 "the File Transfer Protocol (FTP) server daemon.  This file is used not "
317 "merely for system administration purposes but for improving security within "
318 "a TCP/IP networked environment.  It will typically contain a list of the "
319 "users that either have no business using ftp or have too many privileges to "
320 "be allowed to log in through the FTP server daemon.  Such users usually "
321 "include root, daemon, bin, uucp, and news.  If your FTP server daemon "
322 "doesn't use B<ftpusers> then it is suggested that you read its documentation "
323 "to find out how to block access for certain users.  Washington University "
324 "FTP server Daemon (wuftpd) and Professional FTP Daemon (proftpd) are known "
325 "to make use of B<ftpusers>."
326 msgstr ""
327
328 #. type: SS
329 #: build/C/man5/ftpusers.5:41
330 #, no-wrap
331 msgid "Format"
332 msgstr ""
333
334 #. type: Plain text
335 #: build/C/man5/ftpusers.5:47
336 msgid ""
337 "The format of B<ftpusers> is very simple.  There is one account name (or "
338 "username) per line.  Lines starting with a # are ignored."
339 msgstr ""
340
341 #. type: Plain text
342 #: build/C/man5/ftpusers.5:49
343 msgid "I</etc/ftpusers>"
344 msgstr ""
345
346 #. type: Plain text
347 #: build/C/man5/ftpusers.5:53
348 msgid "B<passwd>(5), B<proftpd>(8), B<wuftpd>(8)"
349 msgstr ""
350
351 #. type: TH
352 #: build/C/man3/getgrent.3:30
353 #, no-wrap
354 msgid "GETGRENT"
355 msgstr ""
356
357 #. type: TH
358 #: build/C/man3/getgrent.3:30 build/C/man3/getpwent.3:33
359 #, no-wrap
360 msgid "2013-06-21"
361 msgstr ""
362
363 #. type: Plain text
364 #: build/C/man3/getgrent.3:33
365 msgid "getgrent, setgrent, endgrent - get group file entry"
366 msgstr ""
367
368 #. type: Plain text
369 #: build/C/man3/getgrent.3:37 build/C/man3/getgrnam.3:40 build/C/man3/initgroups.3:39
370 #, no-wrap
371 msgid ""
372 "B<#include E<lt>sys/types.hE<gt>>\n"
373 "B<#include E<lt>grp.hE<gt>>\n"
374 msgstr ""
375
376 #. type: Plain text
377 #: build/C/man3/getgrent.3:39
378 #, no-wrap
379 msgid "B<struct group *getgrent(void);>\n"
380 msgstr ""
381
382 #. type: Plain text
383 #: build/C/man3/getgrent.3:41
384 #, no-wrap
385 msgid "B<void setgrent(void);>\n"
386 msgstr ""
387
388 #. type: Plain text
389 #: build/C/man3/getgrent.3:43
390 #, no-wrap
391 msgid "B<void endgrent(void);>\n"
392 msgstr ""
393
394 #. type: Plain text
395 #: build/C/man3/getgrent.3:53
396 msgid "B<setgrent>():"
397 msgstr ""
398
399 #. type: Plain text
400 #: build/C/man3/getgrent.3:56
401 msgid ""
402 "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
403 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED ||"
404 msgstr ""
405
406 #. type: Plain text
407 #: build/C/man3/getgrent.3:58
408 msgid "/* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
409 msgstr ""
410
411 #. type: Plain text
412 #: build/C/man3/getgrent.3:62
413 msgid "B<getgrent>(), B<endgrent>():"
414 msgstr ""
415
416 #. type: Plain text
417 #: build/C/man3/getgrent.3:65
418 msgid ""
419 "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
420 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
421 msgstr ""
422
423 #. type: Plain text
424 #: build/C/man3/getgrent.3:80
425 msgid ""
426 "The B<getgrent>()  function returns a pointer to a structure containing the "
427 "broken-out fields of a record in the group database (e.g., the local group "
428 "file I</etc/group>, NIS, and LDAP).  The first time B<getgrent>()  is "
429 "called, it returns the first entry; thereafter, it returns successive "
430 "entries."
431 msgstr ""
432
433 #. type: Plain text
434 #: build/C/man3/getgrent.3:85
435 msgid ""
436 "The B<setgrent>()  function rewinds to the beginning of the group database, "
437 "to allow repeated scans."
438 msgstr ""
439
440 #. type: Plain text
441 #: build/C/man3/getgrent.3:90
442 msgid ""
443 "The B<endgrent>()  function is used to close the group database after all "
444 "processing has been performed."
445 msgstr ""
446
447 #. type: Plain text
448 #: build/C/man3/getgrent.3:101 build/C/man3/getgrnam.3:95
449 #, no-wrap
450 msgid ""
451 "struct group {\n"
452 "    char   *gr_name;       /* group name */\n"
453 "    char   *gr_passwd;     /* group password */\n"
454 "    gid_t   gr_gid;        /* group ID */\n"
455 "    char  **gr_mem;        /* group members */\n"
456 "};\n"
457 msgstr ""
458
459 #. type: Plain text
460 #: build/C/man3/getgrent.3:106 build/C/man3/getgrent_r.3:82 build/C/man3/getgrnam.3:100
461 msgid "For more information about the fields of this structure, see B<group>(5)."
462 msgstr ""
463
464 #. type: Plain text
465 #: build/C/man3/getgrent.3:113
466 msgid ""
467 "The B<getgrent>()  function returns a pointer to a I<group> structure, or "
468 "NULL if there are no more entries or an error occurs."
469 msgstr ""
470
471 #. type: Plain text
472 #: build/C/man3/getgrent.3:120
473 msgid ""
474 "Upon error, I<errno> may be set.  If one wants to check I<errno> after the "
475 "call, it should be set to zero before the call."
476 msgstr ""
477
478 #. type: Plain text
479 #: build/C/man3/getgrent.3:129
480 msgid ""
481 "The return value may point to a static area, and may be overwritten by "
482 "subsequent calls to B<getgrent>(), B<getgrgid>(3), or B<getgrnam>(3).  (Do "
483 "not pass the returned pointer to B<free>(3).)"
484 msgstr ""
485
486 #. type: TP
487 #: build/C/man3/getgrent.3:130 build/C/man3/getgrnam.3:182 build/C/man3/getpwent.3:126 build/C/man3/getpwnam.3:189
488 #, no-wrap
489 msgid "B<EINTR>"
490 msgstr ""
491
492 #. type: Plain text
493 #: build/C/man3/getgrent.3:133 build/C/man3/getgrnam.3:185 build/C/man3/getpwent.3:129 build/C/man3/getpwnam.3:192
494 msgid "A signal was caught."
495 msgstr ""
496
497 #. type: TP
498 #: build/C/man3/getgrent.3:133 build/C/man3/getgrnam.3:185 build/C/man3/getpwent.3:129 build/C/man3/getpwnam.3:192
499 #, no-wrap
500 msgid "B<EIO>"
501 msgstr ""
502
503 #. type: Plain text
504 #: build/C/man3/getgrent.3:136 build/C/man3/getgrnam.3:188 build/C/man3/getpwent.3:132 build/C/man3/getpwnam.3:195
505 msgid "I/O error."
506 msgstr ""
507
508 #. type: TP
509 #: build/C/man3/getgrent.3:136 build/C/man3/getgrnam.3:188 build/C/man3/getpwent.3:132 build/C/man3/getpwnam.3:195
510 #, no-wrap
511 msgid "B<EMFILE>"
512 msgstr ""
513
514 #. type: Plain text
515 #: build/C/man3/getgrent.3:139
516 msgid "The calling process already has too many open files."
517 msgstr ""
518
519 #. type: TP
520 #: build/C/man3/getgrent.3:139 build/C/man3/getgrnam.3:193 build/C/man3/getpwent.3:137 build/C/man3/getpwnam.3:200
521 #, no-wrap
522 msgid "B<ENFILE>"
523 msgstr ""
524
525 #. type: Plain text
526 #: build/C/man3/getgrent.3:142
527 msgid "Too many open files in the system."
528 msgstr ""
529
530 #. type: TP
531 #: build/C/man3/getgrent.3:148 build/C/man3/getgrent_r.3:112 build/C/man3/getgrnam.3:203 build/C/man3/getpwent.3:147 build/C/man3/getpwent_r.3:114 build/C/man3/getpwnam.3:210 build/C/man3/getspnam.3:233
532 #, no-wrap
533 msgid "B<ERANGE>"
534 msgstr ""
535
536 #. type: Plain text
537 #: build/C/man3/getgrent.3:151 build/C/man3/getgrnam.3:206 build/C/man3/getpwent.3:150 build/C/man3/getpwnam.3:213
538 msgid "Insufficient buffer space supplied."
539 msgstr ""
540
541 #. type: TP
542 #: build/C/man3/getgrent.3:152 build/C/man3/getgrnam.3:207
543 #, no-wrap
544 msgid "I</etc/group>"
545 msgstr ""
546
547 #. type: Plain text
548 #: build/C/man3/getgrent.3:155 build/C/man3/getgrnam.3:210
549 msgid "local group database file"
550 msgstr ""
551
552 #. type: SH
553 #: build/C/man3/getgrent.3:155 build/C/man3/getgrnam.3:210 build/C/man3/getpwent.3:154 build/C/man3/getpwnam.3:217
554 #, no-wrap
555 msgid "ATTRIBUTES"
556 msgstr ""
557
558 #. type: SS
559 #: build/C/man3/getgrent.3:156 build/C/man3/getgrnam.3:211 build/C/man3/getpwent.3:155 build/C/man3/getpwnam.3:218
560 #, no-wrap
561 msgid "Multithreading (see pthreads(7))"
562 msgstr ""
563
564 #. type: Plain text
565 #: build/C/man3/getgrent.3:160
566 msgid "The B<getgrent()> function is not thread-safe."
567 msgstr ""
568
569 #. type: Plain text
570 #: build/C/man3/getgrent.3:166
571 msgid "The B<setgrent()> and B<endgrent()> functions are thread-safe."
572 msgstr ""
573
574 #. type: Plain text
575 #: build/C/man3/getgrent.3:168 build/C/man3/getgrnam.3:225
576 msgid "SVr4, 4.3BSD, POSIX.1-2001."
577 msgstr ""
578
579 #. type: Plain text
580 #: build/C/man3/getgrent.3:176
581 msgid ""
582 "B<fgetgrent>(3), B<getgrent_r>(3), B<getgrgid>(3), B<getgrnam>(3), "
583 "B<getgrouplist>(3), B<putgrent>(3), B<group>(5)"
584 msgstr ""
585
586 #. type: TH
587 #: build/C/man3/getgrent_r.3:24
588 #, no-wrap
589 msgid "GETGRENT_R"
590 msgstr ""
591
592 #. type: TH
593 #: build/C/man3/getgrent_r.3:24 build/C/man3/getpw.3:32 build/C/man3/getpwent_r.3:24 build/C/man5/group.5:26
594 #, no-wrap
595 msgid "2010-10-21"
596 msgstr ""
597
598 #. type: Plain text
599 #: build/C/man3/getgrent_r.3:27
600 msgid "getgrent_r, fgetgrent_r - get group file entry reentrantly"
601 msgstr ""
602
603 #. type: Plain text
604 #: build/C/man3/getgrent_r.3:30
605 #, no-wrap
606 msgid "B<#include E<lt>grp.hE<gt>>\n"
607 msgstr ""
608
609 #. type: Plain text
610 #: build/C/man3/getgrent_r.3:32
611 #, no-wrap
612 msgid "B<int getgrent_r(struct group *>I<gbuf>B<, char *>I<buf>B<,>\n"
613 msgstr ""
614
615 #. type: Plain text
616 #: build/C/man3/getgrent_r.3:34
617 #, no-wrap
618 msgid "B<               size_t >I<buflen>B<, struct group **>I<gbufp>B<);>\n"
619 msgstr ""
620
621 #. type: Plain text
622 #: build/C/man3/getgrent_r.3:36
623 #, no-wrap
624 msgid ""
625 "B<int fgetgrent_r(FILE *>I<fp>B<, struct group *>I<gbuf>B<, char "
626 "*>I<buf>B<,>\n"
627 msgstr ""
628
629 #. type: Plain text
630 #: build/C/man3/getgrent_r.3:38
631 #, no-wrap
632 msgid "B<                size_t >I<buflen>B<, struct group **>I<gbufp>B<);>\n"
633 msgstr ""
634
635 #.  FIXME . The FTM requirements seem inconsistent here.  File a glibc bug?
636 #. type: Plain text
637 #: build/C/man3/getgrent_r.3:48
638 msgid "B<getgrent_r>(): _GNU_SOURCE"
639 msgstr ""
640
641 #. type: Plain text
642 #: build/C/man3/getgrent_r.3:51
643 msgid "B<fgetgrent_r>(): _SVID_SOURCE"
644 msgstr ""
645
646 #. type: Plain text
647 #: build/C/man3/getgrent_r.3:64
648 msgid ""
649 "The functions B<getgrent_r>()  and B<fgetgrent_r>()  are the reentrant "
650 "versions of B<getgrent>(3)  and B<fgetgrent>(3).  The former reads the next "
651 "group entry from the stream initialized by B<setgrent>(3).  The latter reads "
652 "the next group entry from the stream I<fp>."
653 msgstr ""
654
655 #. type: Plain text
656 #: build/C/man3/getgrent_r.3:77
657 #, no-wrap
658 msgid ""
659 "struct group {\n"
660 "    char    *gr_name;     /* group name */\n"
661 "    char    *gr_passwd;   /* group password */\n"
662 "    gid_t    gr_gid;      /* group ID */\n"
663 "    char   **gr_mem;      /* group members */\n"
664 "};\n"
665 msgstr ""
666
667 #. type: Plain text
668 #: build/C/man3/getgrent_r.3:101
669 msgid ""
670 "The nonreentrant functions return a pointer to static storage, where this "
671 "static storage contains further pointers to group name, password and "
672 "members.  The reentrant functions described here return all of that in "
673 "caller-provided buffers.  First of all there is the buffer I<gbuf> that can "
674 "hold a I<struct group>.  And next the buffer I<buf> of size I<buflen> that "
675 "can hold additional strings.  The result of these functions, the I<struct "
676 "group> read from the stream, is stored in the provided buffer I<*gbuf>, and "
677 "a pointer to this I<struct group> is returned in I<*gbufp>."
678 msgstr ""
679
680 #. type: Plain text
681 #: build/C/man3/getgrent_r.3:108
682 msgid ""
683 "On success, these functions return 0 and I<*gbufp> is a pointer to the "
684 "I<struct group>.  On error, these functions return an error value and "
685 "I<*gbufp> is NULL."
686 msgstr ""
687
688 #. type: TP
689 #: build/C/man3/getgrent_r.3:109 build/C/man3/getpw.3:83 build/C/man3/getpwent_r.3:111
690 #, no-wrap
691 msgid "B<ENOENT>"
692 msgstr ""
693
694 #. type: Plain text
695 #: build/C/man3/getgrent_r.3:112 build/C/man3/getpwent_r.3:114
696 msgid "No more entries."
697 msgstr ""
698
699 #. type: Plain text
700 #: build/C/man3/getgrent_r.3:116 build/C/man3/getpwent_r.3:118
701 msgid "Insufficient buffer space supplied.  Try again with larger buffer."
702 msgstr ""
703
704 #. type: Plain text
705 #: build/C/man3/getgrent_r.3:121 build/C/man3/getpwent_r.3:123
706 msgid ""
707 "These functions are GNU extensions, done in a style resembling the POSIX "
708 "version of functions like B<getpwnam_r>(3).  Other systems use prototype"
709 msgstr ""
710
711 #. type: Plain text
712 #: build/C/man3/getgrent_r.3:126
713 #, no-wrap
714 msgid ""
715 "struct group *getgrent_r(struct group *grp, char *buf,\n"
716 "                         int buflen);\n"
717 msgstr ""
718
719 #. type: Plain text
720 #: build/C/man3/getgrent_r.3:130 build/C/man3/getpwent_r.3:132
721 msgid "or, better,"
722 msgstr ""
723
724 #. type: Plain text
725 #: build/C/man3/getgrent_r.3:135
726 #, no-wrap
727 msgid ""
728 "int getgrent_r(struct group *grp, char *buf, int buflen,\n"
729 "               FILE **gr_fp);\n"
730 msgstr ""
731
732 #. type: SH
733 #: build/C/man3/getgrent_r.3:137 build/C/man3/getgrnam.3:225 build/C/man3/getpwent_r.3:140 build/C/man3/getpwnam.3:235 build/C/man5/passwd.5:144
734 #, no-wrap
735 msgid "NOTES"
736 msgstr ""
737
738 #. type: Plain text
739 #: build/C/man3/getgrent_r.3:142
740 msgid ""
741 "The function B<getgrent_r>()  is not really reentrant since it shares the "
742 "reading position in the stream with all other threads."
743 msgstr ""
744
745 #. type: SH
746 #: build/C/man3/getgrent_r.3:142 build/C/man3/getgrouplist.3:109 build/C/man3/getpwent_r.3:145 build/C/man3/getpwnam.3:274 build/C/man3/setaliasent.3:115
747 #, no-wrap
748 msgid "EXAMPLE"
749 msgstr ""
750
751 #. type: Plain text
752 #: build/C/man3/getgrent_r.3:149
753 #, no-wrap
754 msgid ""
755 "#define _GNU_SOURCE\n"
756 "#include E<lt>grp.hE<gt>\n"
757 "#include E<lt>stdio.hE<gt>\n"
758 "#include E<lt>stdlib.hE<gt>\n"
759 "#define BUFLEN 4096\n"
760 msgstr ""
761
762 #. type: Plain text
763 #: build/C/man3/getgrent_r.3:156
764 #, no-wrap
765 msgid ""
766 "int\n"
767 "main(void)\n"
768 "{\n"
769 "    struct group grp, *grpp;\n"
770 "    char buf[BUFLEN];\n"
771 "    int i;\n"
772 msgstr ""
773
774 #. type: Plain text
775 #: build/C/man3/getgrent_r.3:173
776 #, no-wrap
777 msgid ""
778 "    setgrent();\n"
779 "    while (1) {\n"
780 "        i = getgrent_r(&grp, buf, BUFLEN, &grpp);\n"
781 "        if (i)\n"
782 "            break;\n"
783 "        printf(\"%s (%d):\", grpp-E<gt>gr_name, grpp-E<gt>gr_gid);\n"
784 "        for (i = 0; ; i++) {\n"
785 "            if (grpp-E<gt>gr_mem[i] == NULL)\n"
786 "                break;\n"
787 "            printf(\" %s\", grpp-E<gt>gr_mem[i]);\n"
788 "        }\n"
789 "        printf(\"\\en\");\n"
790 "    }\n"
791 "    endgrent();\n"
792 "    exit(EXIT_SUCCESS);\n"
793 "}\n"
794 msgstr ""
795
796 #. type: Plain text
797 #: build/C/man3/getgrent_r.3:190
798 msgid ""
799 "B<fgetgrent>(3), B<getgrent>(3), B<getgrgid>(3), B<getgrnam>(3), "
800 "B<putgrent>(3), B<group>(5)"
801 msgstr ""
802
803 #. type: TH
804 #: build/C/man3/getgrnam.3:33
805 #, no-wrap
806 msgid "GETGRNAM"
807 msgstr ""
808
809 #. type: TH
810 #: build/C/man3/getgrnam.3:33 build/C/man3/getpwnam.3:37
811 #, no-wrap
812 msgid "2013-07-22"
813 msgstr ""
814
815 #. type: Plain text
816 #: build/C/man3/getgrnam.3:36
817 msgid "getgrnam, getgrnam_r, getgrgid, getgrgid_r - get group file entry"
818 msgstr ""
819
820 #. type: Plain text
821 #: build/C/man3/getgrnam.3:42
822 #, no-wrap
823 msgid "B<struct group *getgrnam(const char *>I<name>B<);>\n"
824 msgstr ""
825
826 #. type: Plain text
827 #: build/C/man3/getgrnam.3:44
828 #, no-wrap
829 msgid "B<struct group *getgrgid(gid_t >I<gid>B<);>\n"
830 msgstr ""
831
832 #. type: Plain text
833 #: build/C/man3/getgrnam.3:46
834 #, no-wrap
835 msgid "B<int getgrnam_r(const char *>I<name>B<, struct group *>I<grp>B<,>\n"
836 msgstr ""
837
838 #. type: Plain text
839 #: build/C/man3/getgrnam.3:48 build/C/man3/getgrnam.3:52
840 #, no-wrap
841 msgid ""
842 "B<          char *>I<buf>B<, size_t >I<buflen>B<, struct group "
843 "**>I<result>B<);>\n"
844 msgstr ""
845
846 #. type: Plain text
847 #: build/C/man3/getgrnam.3:50
848 #, no-wrap
849 msgid "B<int getgrgid_r(gid_t >I<gid>B<, struct group *>I<grp>B<,>\n"
850 msgstr ""
851
852 #. type: Plain text
853 #: build/C/man3/getgrnam.3:62
854 msgid "B<getgrnam_r>(), B<getgrgid_r>():"
855 msgstr ""
856
857 #. type: Plain text
858 #: build/C/man3/getgrnam.3:65 build/C/man3/getpwnam.3:69
859 msgid ""
860 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
861 "|| _POSIX_SOURCE"
862 msgstr ""
863
864 #. type: Plain text
865 #: build/C/man3/getgrnam.3:77
866 msgid ""
867 "The B<getgrnam>()  function returns a pointer to a structure containing the "
868 "broken-out fields of the record in the group database (e.g., the local group "
869 "file I</etc/group>, NIS, and LDAP)  that matches the group name I<name>."
870 msgstr ""
871
872 #. type: Plain text
873 #: build/C/man3/getgrnam.3:84
874 msgid ""
875 "The B<getgrgid>()  function returns a pointer to a structure containing the "
876 "broken-out fields of the record in the group database that matches the group "
877 "ID I<gid>."
878 msgstr ""
879
880 #. type: Plain text
881 #: build/C/man3/getgrnam.3:123
882 msgid ""
883 "The B<getgrnam_r>()  and B<getgrgid_r>()  functions obtain the same "
884 "information as B<getgrnam>()  and B<getgrgid>(), but store the retrieved "
885 "I<group> structure in the space pointed to by I<grp>.  The string fields "
886 "pointed to by the members of the I<group> structure are stored in the buffer "
887 "I<buf> of size I<buflen>.  A pointer to the result (in case of success) or "
888 "NULL (in case no entry was found or an error occurred) is stored in "
889 "I<*result>."
890 msgstr ""
891
892 #. type: Plain text
893 #: build/C/man3/getgrnam.3:125 build/C/man3/getpwnam.3:132
894 msgid "The call"
895 msgstr ""
896
897 #. type: Plain text
898 #: build/C/man3/getgrnam.3:127
899 #, no-wrap
900 msgid "    sysconf(_SC_GETGR_R_SIZE_MAX)\n"
901 msgstr ""
902
903 #. type: Plain text
904 #: build/C/man3/getgrnam.3:136 build/C/man3/getpwnam.3:143
905 msgid ""
906 "returns either -1, without changing I<errno>, or an initial suggested size "
907 "for I<buf>.  (If this size is too small, the call fails with B<ERANGE>, in "
908 "which case the caller can retry with a larger buffer.)"
909 msgstr ""
910
911 #. type: Plain text
912 #: build/C/man3/getgrnam.3:151
913 msgid ""
914 "The B<getgrnam>()  and B<getgrgid>()  functions return a pointer to a "
915 "I<group> structure, or NULL if the matching entry is not found or an error "
916 "occurs.  If an error occurs, I<errno> is set appropriately.  If one wants to "
917 "check I<errno> after the call, it should be set to zero before the call."
918 msgstr ""
919
920 #. type: Plain text
921 #: build/C/man3/getgrnam.3:160
922 msgid ""
923 "The return value may point to a static area, and may be overwritten by "
924 "subsequent calls to B<getgrent>(3), B<getgrgid>(), or B<getgrnam>().  (Do "
925 "not pass the returned pointer to B<free>(3).)"
926 msgstr ""
927
928 #. type: Plain text
929 #: build/C/man3/getgrnam.3:174
930 msgid ""
931 "On success, B<getgrnam_r>()  and B<getgrgid_r>()  return zero, and set "
932 "I<*result> to I<grp>.  If no matching group record was found, these "
933 "functions return 0 and store NULL in I<*result>.  In case of error, an error "
934 "number is returned, and NULL is stored in I<*result>."
935 msgstr ""
936
937 #. type: TP
938 #: build/C/man3/getgrnam.3:175 build/C/man3/getpwnam.3:182
939 #, no-wrap
940 msgid "B<0> or B<ENOENT> or B<ESRCH> or B<EBADF> or B<EPERM> or ... "
941 msgstr ""
942
943 #. type: Plain text
944 #: build/C/man3/getgrnam.3:182
945 msgid "The given I<name> or I<gid> was not found."
946 msgstr ""
947
948 #. type: Plain text
949 #: build/C/man3/getgrnam.3:193 build/C/man3/getpwent.3:137 build/C/man3/getpwnam.3:200
950 msgid ""
951 "The maximum number (B<OPEN_MAX>)  of files was open already in the calling "
952 "process."
953 msgstr ""
954
955 #. type: Plain text
956 #: build/C/man3/getgrnam.3:196 build/C/man3/getpwent.3:140 build/C/man3/getpwnam.3:203
957 msgid "The maximum number of files was open already in the system."
958 msgstr ""
959
960 #. type: Plain text
961 #: build/C/man3/getgrnam.3:217
962 msgid "The B<getgrnam>()  and B<getgrgid>()  functions are not thread-safe."
963 msgstr ""
964
965 #. type: Plain text
966 #: build/C/man3/getgrnam.3:223
967 msgid "The B<getgrnam_r>()  and B<getgrgid_r>()  functions are thread-safe."
968 msgstr ""
969
970 #.  more precisely:
971 #.  AIX 5.1 - gives ESRCH
972 #.  OSF1 4.0g - gives EWOULDBLOCK
973 #.  libc, glibc up to version 2.6, Irix 6.5 - give ENOENT
974 #.  glibc since version 2.7 - give 0
975 #.  FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM
976 #.  SunOS 5.8 - gives EBADF
977 #.  Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0
978 #. type: Plain text
979 #: build/C/man3/getgrnam.3:246
980 msgid ""
981 "The formulation given above under \"RETURN VALUE\" is from POSIX.1-2001.  It "
982 "does not call \"not found\" an error, hence does not specify what value "
983 "I<errno> might have in this situation.  But that makes it impossible to "
984 "recognize errors.  One might argue that according to POSIX I<errno> should "
985 "be left unchanged if an entry is not found.  Experiments on various "
986 "UNIX-like systems shows that lots of different values occur in this "
987 "situation: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM and probably others."
988 msgstr ""
989
990 #. type: Plain text
991 #: build/C/man3/getgrnam.3:253
992 msgid ""
993 "B<endgrent>(3), B<fgetgrent>(3), B<getgrent>(3), B<getpwnam>(3), "
994 "B<setgrent>(3), B<group>(5)"
995 msgstr ""
996
997 #. type: TH
998 #: build/C/man3/getgrouplist.3:29
999 #, no-wrap
1000 msgid "GETGROUPLIST"
1001 msgstr ""
1002
1003 #. type: TH
1004 #: build/C/man3/getgrouplist.3:29
1005 #, no-wrap
1006 msgid "2008-07-03"
1007 msgstr ""
1008
1009 #. type: Plain text
1010 #: build/C/man3/getgrouplist.3:32
1011 msgid "getgrouplist - get list of groups to which a user belongs"
1012 msgstr ""
1013
1014 #. type: Plain text
1015 #: build/C/man3/getgrouplist.3:34 build/C/man3/putgrent.3:14
1016 msgid "B<#include E<lt>grp.hE<gt>>"
1017 msgstr ""
1018
1019 #. type: Plain text
1020 #: build/C/man3/getgrouplist.3:36
1021 msgid "B<int getgrouplist(const char *>I<user>B<, gid_t >I<group>B<,>"
1022 msgstr ""
1023
1024 #. type: Plain text
1025 #: build/C/man3/getgrouplist.3:38
1026 msgid "B< gid_t *>I<groups>B<, int *>I<ngroups>B<);>"
1027 msgstr ""
1028
1029 #. type: Plain text
1030 #: build/C/man3/getgrouplist.3:46
1031 msgid "B<getgrouplist>(): _BSD_SOURCE"
1032 msgstr ""
1033
1034 #. type: Plain text
1035 #: build/C/man3/getgrouplist.3:58
1036 msgid ""
1037 "The B<getgrouplist>()  function scans the group database (see B<group>(5))  "
1038 "to obtain the list of groups that I<user> belongs to.  Up to I<*ngroups> of "
1039 "these groups are returned in the array I<groups>."
1040 msgstr ""
1041
1042 #. type: Plain text
1043 #: build/C/man3/getgrouplist.3:68
1044 msgid ""
1045 "If it was not among the groups defined for I<user> in the group database, "
1046 "then I<group> is included in the list of groups returned by "
1047 "B<getgrouplist>(); typically this argument is specified as the group ID from "
1048 "the password record for I<user>."
1049 msgstr ""
1050
1051 #. type: Plain text
1052 #: build/C/man3/getgrouplist.3:78
1053 msgid ""
1054 "The I<ngroups> argument is a value-result argument: on return it always "
1055 "contains the number of groups found for I<user>, including I<group>; this "
1056 "value may be greater than the number of groups stored in I<groups>."
1057 msgstr ""
1058
1059 #. type: Plain text
1060 #: build/C/man3/getgrouplist.3:86
1061 msgid ""
1062 "If the number of groups of which I<user> is a member is less than or equal "
1063 "to I<*ngroups>, then the value I<*ngroups> is returned."
1064 msgstr ""
1065
1066 #. type: Plain text
1067 #: build/C/man3/getgrouplist.3:96
1068 msgid ""
1069 "If the user is a member of more than I<*ngroups> groups, then "
1070 "B<getgrouplist>()  returns -1.  In this case the value returned in "
1071 "I<*ngroups> can be used to resize the buffer passed to a further call "
1072 "B<getgrouplist>()."
1073 msgstr ""
1074
1075 #. type: SH
1076 #: build/C/man3/getgrouplist.3:96
1077 #, no-wrap
1078 msgid "VERSIONS"
1079 msgstr ""
1080
1081 #. type: Plain text
1082 #: build/C/man3/getgrouplist.3:98
1083 msgid "This function is present since glibc 2.2.4."
1084 msgstr ""
1085
1086 #. type: Plain text
1087 #: build/C/man3/getgrouplist.3:100
1088 msgid "This function is nonstandard; it appears on most BSDs."
1089 msgstr ""
1090
1091 #. type: SH
1092 #: build/C/man3/getgrouplist.3:100 build/C/man3/getpw.3:98 build/C/man5/group.5:55
1093 #, no-wrap
1094 msgid "BUGS"
1095 msgstr ""
1096
1097 #. type: Plain text
1098 #: build/C/man3/getgrouplist.3:109
1099 msgid ""
1100 "In glibc versions before 2.3.3, the implementation of this function contains "
1101 "a buffer-overrun bug: it returns the complete list of groups for I<user> in "
1102 "the array I<groups>, even when the number of groups exceeds I<*ngroups>."
1103 msgstr ""
1104
1105 #. type: Plain text
1106 #: build/C/man3/getgrouplist.3:118
1107 msgid ""
1108 "The program below displays the group list for the user named in its first "
1109 "command-line argument.  The second command-line argument specifies the "
1110 "I<ngroups> value to be supplied to B<getgrouplist>().  The following shell "
1111 "session shows examples of the use of this program:"
1112 msgstr ""
1113
1114 #. type: Plain text
1115 #: build/C/man3/getgrouplist.3:128
1116 #, no-wrap
1117 msgid ""
1118 "$B< ./a.out cecilia 0>\n"
1119 "getgrouplist() returned -1; ngroups = 3\n"
1120 "$B< ./a.out cecilia 3>\n"
1121 "ngroups = 3\n"
1122 "16 (dialout)\n"
1123 "33 (video)\n"
1124 "100 (users)\n"
1125 msgstr ""
1126
1127 #. type: SS
1128 #: build/C/man3/getgrouplist.3:130
1129 #, no-wrap
1130 msgid "Program source"
1131 msgstr ""
1132
1133 #. type: Plain text
1134 #: build/C/man3/getgrouplist.3:137
1135 #, no-wrap
1136 msgid ""
1137 "#include E<lt>stdio.hE<gt>\n"
1138 "#include E<lt>stdlib.hE<gt>\n"
1139 "#include E<lt>grp.hE<gt>\n"
1140 "#include E<lt>pwd.hE<gt>\n"
1141 msgstr ""
1142
1143 #. type: Plain text
1144 #: build/C/man3/getgrouplist.3:145
1145 #, no-wrap
1146 msgid ""
1147 "int\n"
1148 "main(int argc, char *argv[])\n"
1149 "{\n"
1150 "    int j, ngroups;\n"
1151 "    gid_t *groups;\n"
1152 "    struct passwd *pw;\n"
1153 "    struct group *gr;\n"
1154 msgstr ""
1155
1156 #. type: Plain text
1157 #: build/C/man3/getgrouplist.3:150
1158 #, no-wrap
1159 msgid ""
1160 "    if (argc != 3) {\n"
1161 "        fprintf(stderr, \"Usage: %s E<lt>userE<gt> E<lt>ngroupsE<gt>\\en\", "
1162 "argv[0]);\n"
1163 "        exit(EXIT_FAILURE);\n"
1164 "    }\n"
1165 msgstr ""
1166
1167 #. type: Plain text
1168 #: build/C/man3/getgrouplist.3:152
1169 #, no-wrap
1170 msgid "    ngroups = atoi(argv[2]);\n"
1171 msgstr ""
1172
1173 #. type: Plain text
1174 #: build/C/man3/getgrouplist.3:158
1175 #, no-wrap
1176 msgid ""
1177 "    groups = malloc(ngroups * sizeof (gid_t));\n"
1178 "    if (groups == NULL) {\n"
1179 "        perror(\"malloc\");\n"
1180 "        exit(EXIT_FAILURE);\n"
1181 "    }\n"
1182 msgstr ""
1183
1184 #. type: Plain text
1185 #: build/C/man3/getgrouplist.3:160
1186 #, no-wrap
1187 msgid "    /* Fetch passwd structure (contains first group ID for user) */\n"
1188 msgstr ""
1189
1190 #. type: Plain text
1191 #: build/C/man3/getgrouplist.3:166
1192 #, no-wrap
1193 msgid ""
1194 "    pw = getpwnam(argv[1]);\n"
1195 "    if (pw == NULL) {\n"
1196 "        perror(\"getpwnam\");\n"
1197 "        exit(EXIT_SUCCESS);\n"
1198 "    }\n"
1199 msgstr ""
1200
1201 #. type: Plain text
1202 #: build/C/man3/getgrouplist.3:168
1203 #, no-wrap
1204 msgid "    /* Retrieve group list */\n"
1205 msgstr ""
1206
1207 #. type: Plain text
1208 #: build/C/man3/getgrouplist.3:174
1209 #, no-wrap
1210 msgid ""
1211 "    if (getgrouplist(argv[1], pw-E<gt>pw_gid, groups, &ngroups) == -1) {\n"
1212 "        fprintf(stderr, \"getgrouplist() returned -1; ngroups = %d\\en\",\n"
1213 "                ngroups);\n"
1214 "\texit(EXIT_FAILURE);\n"
1215 "    }\n"
1216 msgstr ""
1217
1218 #. type: Plain text
1219 #: build/C/man3/getgrouplist.3:176
1220 #, no-wrap
1221 msgid "    /* Display list of retrieved groups, along with group names */\n"
1222 msgstr ""
1223
1224 #. type: Plain text
1225 #: build/C/man3/getgrouplist.3:185
1226 #, no-wrap
1227 msgid ""
1228 "    fprintf(stderr, \"ngroups = %d\\en\", ngroups);\n"
1229 "    for (j = 0; j E<lt> ngroups; j++) {\n"
1230 "        printf(\"%d\", groups[j]);\n"
1231 "        gr = getgrgid(groups[j]);\n"
1232 "        if (gr != NULL)\n"
1233 "            printf(\" (%s)\", gr-E<gt>gr_name);\n"
1234 "        printf(\"\\en\");\n"
1235 "    }\n"
1236 msgstr ""
1237
1238 #. type: Plain text
1239 #: build/C/man3/getgrouplist.3:188
1240 #, no-wrap
1241 msgid ""
1242 "    exit(EXIT_SUCCESS);\n"
1243 "}\n"
1244 msgstr ""
1245
1246 #. type: Plain text
1247 #: build/C/man3/getgrouplist.3:195
1248 msgid "B<getgroups>(2), B<setgroups>(2), B<getgrent>(3), B<group>(5), B<passwd>(5)"
1249 msgstr ""
1250
1251 #. type: TH
1252 #: build/C/man3/getpw.3:32
1253 #, no-wrap
1254 msgid "GETPW"
1255 msgstr ""
1256
1257 #. type: Plain text
1258 #: build/C/man3/getpw.3:35
1259 msgid "getpw - reconstruct password line entry"
1260 msgstr ""
1261
1262 #. type: Plain text
1263 #: build/C/man3/getpw.3:40
1264 #, no-wrap
1265 msgid ""
1266 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
1267 "B<#include E<lt>sys/types.hE<gt>>\n"
1268 "B<#include E<lt>pwd.hE<gt>>\n"
1269 msgstr ""
1270
1271 #. type: Plain text
1272 #: build/C/man3/getpw.3:42
1273 #, no-wrap
1274 msgid "B<int getpw(uid_t >I<uid>B<, char *>I<buf>B<);>\n"
1275 msgstr ""
1276
1277 #. type: Plain text
1278 #: build/C/man3/getpw.3:49
1279 msgid ""
1280 "The B<getpw>()  function reconstructs the password line entry for the given "
1281 "user ID I<uid> in the buffer I<buf>.  The returned buffer contains a line of "
1282 "format"
1283 msgstr ""
1284
1285 #. type: Plain text
1286 #: build/C/man3/getpw.3:52
1287 msgid "B<name:passwd:uid:gid:gecos:dir:shell>"
1288 msgstr ""
1289
1290 #. type: Plain text
1291 #: build/C/man3/getpw.3:67 build/C/man3/getpwent.3:98 build/C/man3/getpwnam.3:102
1292 #, no-wrap
1293 msgid ""
1294 "struct passwd {\n"
1295 "    char   *pw_name;       /* username */\n"
1296 "    char   *pw_passwd;     /* user password */\n"
1297 "    uid_t   pw_uid;        /* user ID */\n"
1298 "    gid_t   pw_gid;        /* group ID */\n"
1299 "    char   *pw_gecos;      /* user information */\n"
1300 "    char   *pw_dir;        /* home directory */\n"
1301 "    char   *pw_shell;      /* shell program */\n"
1302 "};\n"
1303 msgstr ""
1304
1305 #. type: Plain text
1306 #: build/C/man3/getpw.3:72 build/C/man3/getpwent.3:103 build/C/man3/getpwent_r.3:84
1307 msgid "For more information about the fields of this structure, see B<passwd>(5)."
1308 msgstr ""
1309
1310 #. type: Plain text
1311 #: build/C/man3/getpw.3:78
1312 msgid ""
1313 "The B<getpw>()  function returns 0 on success; on error, it returns -1, and "
1314 "I<errno> is set to indicate the error."
1315 msgstr ""
1316
1317 #. type: TP
1318 #: build/C/man3/getpw.3:79 build/C/man3/putpwent.3:79
1319 #, no-wrap
1320 msgid "B<EINVAL>"
1321 msgstr ""
1322
1323 #. type: Plain text
1324 #: build/C/man3/getpw.3:83
1325 msgid "I<buf> is NULL."
1326 msgstr ""
1327
1328 #. type: Plain text
1329 #: build/C/man3/getpw.3:87
1330 msgid "No user corresponding to I<uid>."
1331 msgstr ""
1332
1333 #. type: Plain text
1334 #: build/C/man3/getpw.3:98
1335 msgid "SVr2."
1336 msgstr ""
1337
1338 #. type: Plain text
1339 #: build/C/man3/getpw.3:105
1340 msgid ""
1341 "The B<getpw>()  function is dangerous as it may overflow the provided buffer "
1342 "I<buf>.  It is obsoleted by B<getpwuid>(3)."
1343 msgstr ""
1344
1345 #. type: Plain text
1346 #: build/C/man3/getpw.3:114
1347 msgid ""
1348 "B<endpwent>(3), B<fgetpwent>(3), B<getpwent>(3), B<getpwnam>(3), "
1349 "B<getpwuid>(3), B<putpwent>(3), B<setpwent>(3), B<passwd>(5)"
1350 msgstr ""
1351
1352 #. type: TH
1353 #: build/C/man3/getpwent.3:33
1354 #, no-wrap
1355 msgid "GETPWENT"
1356 msgstr ""
1357
1358 #. type: Plain text
1359 #: build/C/man3/getpwent.3:36
1360 msgid "getpwent, setpwent, endpwent - get password file entry"
1361 msgstr ""
1362
1363 #. type: Plain text
1364 #: build/C/man3/getpwent.3:40 build/C/man3/getpwnam.3:44
1365 #, no-wrap
1366 msgid ""
1367 "B<#include E<lt>sys/types.hE<gt>>\n"
1368 "B<#include E<lt>pwd.hE<gt>>\n"
1369 msgstr ""
1370
1371 #. type: Plain text
1372 #: build/C/man3/getpwent.3:42
1373 #, no-wrap
1374 msgid "B<struct passwd *getpwent(void);>\n"
1375 msgstr ""
1376
1377 #. type: Plain text
1378 #: build/C/man3/getpwent.3:44
1379 #, no-wrap
1380 msgid "B<void setpwent(void);>\n"
1381 msgstr ""
1382
1383 #. type: Plain text
1384 #: build/C/man3/getpwent.3:46
1385 #, no-wrap
1386 msgid "B<void endpwent(void);>\n"
1387 msgstr ""
1388
1389 #. type: Plain text
1390 #: build/C/man3/getpwent.3:57
1391 msgid "B<getpwent>(), B<setpwent>(), B<endpwent>():"
1392 msgstr ""
1393
1394 #. type: Plain text
1395 #: build/C/man3/getpwent.3:60
1396 msgid ""
1397 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
1398 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
1399 msgstr ""
1400
1401 #. type: Plain text
1402 #: build/C/man3/getpwent.3:74
1403 msgid ""
1404 "The B<getpwent>()  function returns a pointer to a structure containing the "
1405 "broken-out fields of a record from the password database (e.g., the local "
1406 "password file I</etc/passwd>, NIS, and LDAP).  The first time B<getpwent>()  "
1407 "is called, it returns the first entry; thereafter, it returns successive "
1408 "entries."
1409 msgstr ""
1410
1411 #. type: Plain text
1412 #: build/C/man3/getpwent.3:79
1413 msgid ""
1414 "The B<setpwent>()  function rewinds to the beginning of the password "
1415 "database."
1416 msgstr ""
1417
1418 #. type: Plain text
1419 #: build/C/man3/getpwent.3:84
1420 msgid ""
1421 "The B<endpwent>()  function is used to close the password database after all "
1422 "processing has been performed."
1423 msgstr ""
1424
1425 #. type: Plain text
1426 #: build/C/man3/getpwent.3:116
1427 msgid ""
1428 "The B<getpwent>()  function returns a pointer to a I<passwd> structure, or "
1429 "NULL if there are no more entries or an error occurs.  If an error occurs, "
1430 "I<errno> is set appropriately.  If one wants to check I<errno> after the "
1431 "call, it should be set to zero before the call."
1432 msgstr ""
1433
1434 #. type: Plain text
1435 #: build/C/man3/getpwent.3:125
1436 msgid ""
1437 "The return value may point to a static area, and may be overwritten by "
1438 "subsequent calls to B<getpwent>(), B<getpwnam>(3), or B<getpwuid>(3).  (Do "
1439 "not pass the returned pointer to B<free>(3).)"
1440 msgstr ""
1441
1442 #. type: Plain text
1443 #: build/C/man3/getpwent.3:154 build/C/man3/getpwnam.3:217
1444 msgid "local password database file"
1445 msgstr ""
1446
1447 #. type: Plain text
1448 #: build/C/man3/getpwent.3:159
1449 msgid "The B<getpwent()> function is not thread-safe."
1450 msgstr ""
1451
1452 #. type: Plain text
1453 #: build/C/man3/getpwent.3:165
1454 msgid "The B<setpwent()> and B<endpwent()> functions are thread-safe."
1455 msgstr ""
1456
1457 #. type: Plain text
1458 #: build/C/man3/getpwent.3:170 build/C/man3/getpwnam.3:235
1459 msgid ""
1460 "SVr4, 4.3BSD, POSIX.1-2001.  The I<pw_gecos> field is not specified in "
1461 "POSIX, but is present on most implementations."
1462 msgstr ""
1463
1464 #. type: Plain text
1465 #: build/C/man3/getpwent.3:178
1466 msgid ""
1467 "B<fgetpwent>(3), B<getpw>(3), B<getpwent_r>(3), B<getpwnam>(3), "
1468 "B<getpwuid>(3), B<putpwent>(3), B<passwd>(5)"
1469 msgstr ""
1470
1471 #. type: TH
1472 #: build/C/man3/getpwent_r.3:24
1473 #, no-wrap
1474 msgid "GETPWENT_R"
1475 msgstr ""
1476
1477 #. type: Plain text
1478 #: build/C/man3/getpwent_r.3:27
1479 msgid "getpwent_r, fgetpwent_r - get passwd file entry reentrantly"
1480 msgstr ""
1481
1482 #. type: Plain text
1483 #: build/C/man3/getpwent_r.3:30
1484 #, no-wrap
1485 msgid "B<#include E<lt>pwd.hE<gt>>\n"
1486 msgstr ""
1487
1488 #. type: Plain text
1489 #: build/C/man3/getpwent_r.3:32
1490 #, no-wrap
1491 msgid "B<int getpwent_r(struct passwd *>I<pwbuf>B<, char *>I<buf>B<,>\n"
1492 msgstr ""
1493
1494 #. type: Plain text
1495 #: build/C/man3/getpwent_r.3:34
1496 #, no-wrap
1497 msgid "B<               size_t >I<buflen>B<, struct passwd **>I<pwbufp>B<);>\n"
1498 msgstr ""
1499
1500 #. type: Plain text
1501 #: build/C/man3/getpwent_r.3:36
1502 #, no-wrap
1503 msgid ""
1504 "B<int fgetpwent_r(FILE *>I<fp>B<, struct passwd *>I<pwbuf>B<, char "
1505 "*>I<buf>B<,>\n"
1506 msgstr ""
1507
1508 #. type: Plain text
1509 #: build/C/man3/getpwent_r.3:38
1510 #, no-wrap
1511 msgid "B<                size_t >I<buflen>B<, struct passwd **>I<pwbufp>B<);>\n"
1512 msgstr ""
1513
1514 #. type: Plain text
1515 #: build/C/man3/getpwent_r.3:47
1516 msgid "B<getpwent_r>(), _BSD_SOURCE || _SVID_SOURCE"
1517 msgstr ""
1518
1519 #. type: Plain text
1520 #: build/C/man3/getpwent_r.3:50
1521 msgid "B<fgetpwent_r>(): _SVID_SOURCE"
1522 msgstr ""
1523
1524 #. type: Plain text
1525 #: build/C/man3/getpwent_r.3:63
1526 msgid ""
1527 "The functions B<getpwent_r>()  and B<fgetpwent_r>()  are the reentrant "
1528 "versions of B<getpwent>(3)  and B<fgetpwent>(3).  The former reads the next "
1529 "passwd entry from the stream initialized by B<setpwent>(3).  The latter "
1530 "reads the next passwd entry from the stream I<fp>."
1531 msgstr ""
1532
1533 #. type: Plain text
1534 #: build/C/man3/getpwent_r.3:79
1535 #, no-wrap
1536 msgid ""
1537 "struct passwd {\n"
1538 "    char    *pw_name;      /* username */\n"
1539 "    char    *pw_passwd;    /* user password */\n"
1540 "    uid_t    pw_uid;       /* user ID */\n"
1541 "    gid_t    pw_gid;       /* group ID */\n"
1542 "    char    *pw_gecos;     /* user information */\n"
1543 "    char    *pw_dir;       /* home directory */\n"
1544 "    char    *pw_shell;     /* shell program */\n"
1545 "};\n"
1546 msgstr ""
1547
1548 #. type: Plain text
1549 #: build/C/man3/getpwent_r.3:103
1550 msgid ""
1551 "The nonreentrant functions return a pointer to static storage, where this "
1552 "static storage contains further pointers to user name, password, gecos "
1553 "field, home directory and shell.  The reentrant functions described here "
1554 "return all of that in caller-provided buffers.  First of all there is the "
1555 "buffer I<pwbuf> that can hold a I<struct passwd>.  And next the buffer "
1556 "I<buf> of size I<buflen> that can hold additional strings.  The result of "
1557 "these functions, the I<struct passwd> read from the stream, is stored in the "
1558 "provided buffer I<*pwbuf>, and a pointer to this I<struct passwd> is "
1559 "returned in I<*pwbufp>."
1560 msgstr ""
1561
1562 #. type: Plain text
1563 #: build/C/man3/getpwent_r.3:110
1564 msgid ""
1565 "On success, these functions return 0 and I<*pwbufp> is a pointer to the "
1566 "I<struct passwd>.  On error, these functions return an error value and "
1567 "I<*pwbufp> is NULL."
1568 msgstr ""
1569
1570 #. type: Plain text
1571 #: build/C/man3/getpwent_r.3:128
1572 #, no-wrap
1573 msgid ""
1574 "struct passwd *\n"
1575 "getpwent_r(struct passwd *pwd, char *buf, int buflen);\n"
1576 msgstr ""
1577
1578 #. type: Plain text
1579 #: build/C/man3/getpwent_r.3:138
1580 #, no-wrap
1581 msgid ""
1582 "int\n"
1583 "getpwent_r(struct passwd *pwd, char *buf, int buflen,\n"
1584 "           FILE **pw_fp);\n"
1585 msgstr ""
1586
1587 #. type: Plain text
1588 #: build/C/man3/getpwent_r.3:145
1589 msgid ""
1590 "The function B<getpwent_r>()  is not really reentrant since it shares the "
1591 "reading position in the stream with all other threads."
1592 msgstr ""
1593
1594 #. type: Plain text
1595 #: build/C/man3/getpwent_r.3:151
1596 #, no-wrap
1597 msgid ""
1598 "#define _GNU_SOURCE\n"
1599 "#include E<lt>pwd.hE<gt>\n"
1600 "#include E<lt>stdio.hE<gt>\n"
1601 "#define BUFLEN 4096\n"
1602 msgstr ""
1603
1604 #. type: Plain text
1605 #: build/C/man3/getpwent_r.3:158
1606 #, no-wrap
1607 msgid ""
1608 "int\n"
1609 "main(void)\n"
1610 "{\n"
1611 "    struct passwd pw, *pwp;\n"
1612 "    char buf[BUFLEN];\n"
1613 "    int i;\n"
1614 msgstr ""
1615
1616 #. type: Plain text
1617 #: build/C/man3/getpwent_r.3:170
1618 #, no-wrap
1619 msgid ""
1620 "    setpwent();\n"
1621 "    while (1) {\n"
1622 "        i = getpwent_r(&pw, buf, BUFLEN, &pwp);\n"
1623 "        if (i)\n"
1624 "            break;\n"
1625 "        printf(\"%s (%d)\\etHOME %s\\etSHELL %s\\en\", pwp-E<gt>pw_name,\n"
1626 "               pwp-E<gt>pw_uid, pwp-E<gt>pw_dir, pwp-E<gt>pw_shell);\n"
1627 "    }\n"
1628 "    endpwent();\n"
1629 "    exit(EXIT_SUCCESS);\n"
1630 "}\n"
1631 msgstr ""
1632
1633 #. type: Plain text
1634 #: build/C/man3/getpwent_r.3:188
1635 msgid ""
1636 "B<fgetpwent>(3), B<getpw>(3), B<getpwent>(3), B<getpwnam>(3), "
1637 "B<getpwuid>(3), B<putpwent>(3), B<passwd>(5)"
1638 msgstr ""
1639
1640 #. type: TH
1641 #: build/C/man3/getpwnam.3:37
1642 #, no-wrap
1643 msgid "GETPWNAM"
1644 msgstr ""
1645
1646 #. type: Plain text
1647 #: build/C/man3/getpwnam.3:40
1648 msgid "getpwnam, getpwnam_r, getpwuid, getpwuid_r - get password file entry"
1649 msgstr ""
1650
1651 #. type: Plain text
1652 #: build/C/man3/getpwnam.3:46
1653 #, no-wrap
1654 msgid "B<struct passwd *getpwnam(const char *>I<name>B<);>\n"
1655 msgstr ""
1656
1657 #. type: Plain text
1658 #: build/C/man3/getpwnam.3:48
1659 #, no-wrap
1660 msgid "B<struct passwd *getpwuid(uid_t >I<uid>B<);>\n"
1661 msgstr ""
1662
1663 #. type: Plain text
1664 #: build/C/man3/getpwnam.3:50
1665 #, no-wrap
1666 msgid "B<int getpwnam_r(const char *>I<name>B<, struct passwd *>I<pwd>B<,>\n"
1667 msgstr ""
1668
1669 #. type: Plain text
1670 #: build/C/man3/getpwnam.3:52 build/C/man3/getpwnam.3:56
1671 #, no-wrap
1672 msgid ""
1673 "B<            char *>I<buf>B<, size_t >I<buflen>B<, struct passwd "
1674 "**>I<result>B<);>\n"
1675 msgstr ""
1676
1677 #. type: Plain text
1678 #: build/C/man3/getpwnam.3:54
1679 #, no-wrap
1680 msgid "B<int getpwuid_r(uid_t >I<uid>B<, struct passwd *>I<pwd>B<,>\n"
1681 msgstr ""
1682
1683 #. type: Plain text
1684 #: build/C/man3/getpwnam.3:66
1685 msgid "B<getpwnam_r>(), B<getpwuid_r>():"
1686 msgstr ""
1687
1688 #. type: Plain text
1689 #: build/C/man3/getpwnam.3:81
1690 msgid ""
1691 "The B<getpwnam>()  function returns a pointer to a structure containing the "
1692 "broken-out fields of the record in the password database (e.g., the local "
1693 "password file I</etc/passwd>, NIS, and LDAP)  that matches the username "
1694 "I<name>."
1695 msgstr ""
1696
1697 #. type: Plain text
1698 #: build/C/man3/getpwnam.3:88
1699 msgid ""
1700 "The B<getpwuid>()  function returns a pointer to a structure containing the "
1701 "broken-out fields of the record in the password database that matches the "
1702 "user ID I<uid>."
1703 msgstr ""
1704
1705 #. type: Plain text
1706 #: build/C/man3/getpwnam.3:108
1707 msgid "See B<passwd>(5)  for more information about these fields."
1708 msgstr ""
1709
1710 #. type: Plain text
1711 #: build/C/man3/getpwnam.3:130
1712 msgid ""
1713 "The B<getpwnam_r>()  and B<getpwuid_r>()  functions obtain the same "
1714 "information as B<getpwnam>()  and B<getpwuid>(), but store the retrieved "
1715 "I<passwd> structure in the space pointed to by I<pwd>.  The string fields "
1716 "pointed to by the members of the I<passwd> structure are stored in the "
1717 "buffer I<buf> of size I<buflen>.  A pointer to the result (in case of "
1718 "success) or NULL (in case no entry was found or an error occurred) is stored "
1719 "in I<*result>."
1720 msgstr ""
1721
1722 #. type: Plain text
1723 #: build/C/man3/getpwnam.3:134
1724 #, no-wrap
1725 msgid "    sysconf(_SC_GETPW_R_SIZE_MAX)\n"
1726 msgstr ""
1727
1728 #. type: Plain text
1729 #: build/C/man3/getpwnam.3:158
1730 msgid ""
1731 "The B<getpwnam>()  and B<getpwuid>()  functions return a pointer to a "
1732 "I<passwd> structure, or NULL if the matching entry is not found or an error "
1733 "occurs.  If an error occurs, I<errno> is set appropriately.  If one wants to "
1734 "check I<errno> after the call, it should be set to zero before the call."
1735 msgstr ""
1736
1737 #. type: Plain text
1738 #: build/C/man3/getpwnam.3:167
1739 msgid ""
1740 "The return value may point to a static area, and may be overwritten by "
1741 "subsequent calls to B<getpwent>(3), B<getpwnam>(), or B<getpwuid>().  (Do "
1742 "not pass the returned pointer to B<free>(3).)"
1743 msgstr ""
1744
1745 #. type: Plain text
1746 #: build/C/man3/getpwnam.3:181
1747 msgid ""
1748 "On success, B<getpwnam_r>()  and B<getpwuid_r>()  return zero, and set "
1749 "I<*result> to I<pwd>.  If no matching password record was found, these "
1750 "functions return 0 and store NULL in I<*result>.  In case of error, an error "
1751 "number is returned, and NULL is stored in I<*result>."
1752 msgstr ""
1753
1754 #. type: Plain text
1755 #: build/C/man3/getpwnam.3:189
1756 msgid "The given I<name> or I<uid> was not found."
1757 msgstr ""
1758
1759 #. type: Plain text
1760 #: build/C/man3/getpwnam.3:224
1761 msgid "The B<getpwnam>()  and B<getpwuid>()  functions are not thread-safe."
1762 msgstr ""
1763
1764 #. type: Plain text
1765 #: build/C/man3/getpwnam.3:230
1766 msgid "The B<getpwnam_r>()  and B<getpwuid_r>()  functions are thread-safe."
1767 msgstr ""
1768
1769 #.  more precisely:
1770 #.  AIX 5.1 - gives ESRCH
1771 #.  OSF1 4.0g - gives EWOULDBLOCK
1772 #.  libc, glibc up to version 2.6, Irix 6.5 - give ENOENT
1773 #.  glibc since version 2.7 - give 0
1774 #.  FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM
1775 #.  SunOS 5.8 - gives EBADF
1776 #.  Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0
1777 #. type: Plain text
1778 #: build/C/man3/getpwnam.3:256
1779 msgid ""
1780 "The formulation given above under \"RETURN VALUE\" is from POSIX.1-2001.  It "
1781 "does not call \"not found\" an error, and hence does not specify what value "
1782 "I<errno> might have in this situation.  But that makes it impossible to "
1783 "recognize errors.  One might argue that according to POSIX I<errno> should "
1784 "be left unchanged if an entry is not found.  Experiments on various "
1785 "UNIX-like systems show that lots of different values occur in this "
1786 "situation: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM and probably others."
1787 msgstr ""
1788
1789 #. type: Plain text
1790 #: build/C/man3/getpwnam.3:274
1791 msgid ""
1792 "The I<pw_dir> field contains the name of the initial working directory of "
1793 "the user.  Login programs use the value of this field to initialize the "
1794 "B<HOME> environment variable for the login shell.  An application that wants "
1795 "to determine its user's home directory should inspect the value of B<HOME> "
1796 "(rather than the value I<getpwuid(getuid())-E<gt>pw_dir>)  since this allows "
1797 "the user to modify their notion of \"the home directory\" during a login "
1798 "session.  To determine the (initial) home directory of another user, it is "
1799 "necessary to use I<getpwnam(\"username\")-E<gt>pw_dir> or similar."
1800 msgstr ""
1801
1802 #. type: Plain text
1803 #: build/C/man3/getpwnam.3:279
1804 msgid ""
1805 "The program below demonstrates the use of B<getpwnam_r>()  to find the full "
1806 "username and user ID for the username supplied as a command-line argument."
1807 msgstr ""
1808
1809 #. type: Plain text
1810 #: build/C/man3/getpwnam.3:286
1811 #, no-wrap
1812 msgid ""
1813 "#include E<lt>pwd.hE<gt>\n"
1814 "#include E<lt>stdio.hE<gt>\n"
1815 "#include E<lt>stdlib.hE<gt>\n"
1816 "#include E<lt>unistd.hE<gt>\n"
1817 "#include E<lt>errno.hE<gt>\n"
1818 msgstr ""
1819
1820 #. type: Plain text
1821 #: build/C/man3/getpwnam.3:295
1822 #, no-wrap
1823 msgid ""
1824 "int\n"
1825 "main(int argc, char *argv[])\n"
1826 "{\n"
1827 "    struct passwd pwd;\n"
1828 "    struct passwd *result;\n"
1829 "    char *buf;\n"
1830 "    size_t bufsize;\n"
1831 "    int s;\n"
1832 msgstr ""
1833
1834 #. type: Plain text
1835 #: build/C/man3/getpwnam.3:300
1836 #, no-wrap
1837 msgid ""
1838 "    if (argc != 2) {\n"
1839 "        fprintf(stderr, \"Usage: %s username\\en\", argv[0]);\n"
1840 "        exit(EXIT_FAILURE);\n"
1841 "    }\n"
1842 msgstr ""
1843
1844 #. type: Plain text
1845 #: build/C/man3/getpwnam.3:304
1846 #, no-wrap
1847 msgid ""
1848 "    bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);\n"
1849 "    if (bufsize == -1)          /* Value was indeterminate */\n"
1850 "        bufsize = 16384;        /* Should be more than enough */\n"
1851 msgstr ""
1852
1853 #. type: Plain text
1854 #: build/C/man3/getpwnam.3:310
1855 #, no-wrap
1856 msgid ""
1857 "    buf = malloc(bufsize);\n"
1858 "    if (buf == NULL) {\n"
1859 "        perror(\"malloc\");\n"
1860 "        exit(EXIT_FAILURE);\n"
1861 "    }\n"
1862 msgstr ""
1863
1864 #. type: Plain text
1865 #: build/C/man3/getpwnam.3:321
1866 #, no-wrap
1867 msgid ""
1868 "    s = getpwnam_r(argv[1], &pwd, buf, bufsize, &result);\n"
1869 "    if (result == NULL) {\n"
1870 "        if (s == 0)\n"
1871 "            printf(\"Not found\\en\");\n"
1872 "        else {\n"
1873 "            errno = s;\n"
1874 "            perror(\"getpwnam_r\");\n"
1875 "        }\n"
1876 "        exit(EXIT_FAILURE);\n"
1877 "    }\n"
1878 msgstr ""
1879
1880 #. type: Plain text
1881 #: build/C/man3/getpwnam.3:325
1882 #, no-wrap
1883 msgid ""
1884 "    printf(\"Name: %s; UID: %ld\\en\", pwd.pw_gecos, (long) pwd.pw_uid);\n"
1885 "    exit(EXIT_SUCCESS);\n"
1886 "}\n"
1887 msgstr ""
1888
1889 #. type: Plain text
1890 #: build/C/man3/getpwnam.3:336
1891 msgid ""
1892 "B<endpwent>(3), B<fgetpwent>(3), B<getgrnam>(3), B<getpw>(3), "
1893 "B<getpwent>(3), B<getspnam>(3), B<putpwent>(3), B<setpwent>(3), B<passwd>(5)"
1894 msgstr ""
1895
1896 #. type: TH
1897 #: build/C/man3/getspnam.3:8
1898 #, no-wrap
1899 msgid "GETSPNAM"
1900 msgstr ""
1901
1902 #. type: Plain text
1903 #: build/C/man3/getspnam.3:13
1904 msgid ""
1905 "getspnam, getspnam_r, getspent, getspent_r, setspent, endspent, fgetspent, "
1906 "fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf - get "
1907 "shadow password file entry"
1908 msgstr ""
1909
1910 #. type: Plain text
1911 #: build/C/man3/getspnam.3:16
1912 #, no-wrap
1913 msgid "/* General shadow password file API */\n"
1914 msgstr ""
1915
1916 #. type: Plain text
1917 #: build/C/man3/getspnam.3:18 build/C/man3/getspnam.3:40
1918 #, no-wrap
1919 msgid "B<#include E<lt>shadow.hE<gt>>\n"
1920 msgstr ""
1921
1922 #. type: Plain text
1923 #: build/C/man3/getspnam.3:20
1924 #, no-wrap
1925 msgid "B<struct spwd *getspnam(const char *>I<name>B<);>\n"
1926 msgstr ""
1927
1928 #. type: Plain text
1929 #: build/C/man3/getspnam.3:22
1930 #, no-wrap
1931 msgid "B<struct spwd *getspent(void);>\n"
1932 msgstr ""
1933
1934 #. type: Plain text
1935 #: build/C/man3/getspnam.3:24
1936 #, no-wrap
1937 msgid "B<void setspent(void);>\n"
1938 msgstr ""
1939
1940 #. type: Plain text
1941 #: build/C/man3/getspnam.3:26
1942 #, no-wrap
1943 msgid "B<void endspent(void);>\n"
1944 msgstr ""
1945
1946 #. type: Plain text
1947 #: build/C/man3/getspnam.3:28
1948 #, no-wrap
1949 msgid "B<struct spwd *fgetspent(FILE *>I<fp>B<);>\n"
1950 msgstr ""
1951
1952 #. type: Plain text
1953 #: build/C/man3/getspnam.3:30
1954 #, no-wrap
1955 msgid "B<struct spwd *sgetspent(const char *>I<s>B<);>\n"
1956 msgstr ""
1957
1958 #. type: Plain text
1959 #: build/C/man3/getspnam.3:32
1960 #, no-wrap
1961 msgid "B<int putspent(struct spwd *>I<p>B<, FILE *>I<fp>B<);>\n"
1962 msgstr ""
1963
1964 #. type: Plain text
1965 #: build/C/man3/getspnam.3:34
1966 #, no-wrap
1967 msgid "B<int lckpwdf(void);>\n"
1968 msgstr ""
1969
1970 #. type: Plain text
1971 #: build/C/man3/getspnam.3:36
1972 #, no-wrap
1973 msgid "B<int ulckpwdf(void);>\n"
1974 msgstr ""
1975
1976 #. type: Plain text
1977 #: build/C/man3/getspnam.3:38
1978 #, no-wrap
1979 msgid "/* GNU extension */\n"
1980 msgstr ""
1981
1982 #. type: Plain text
1983 #: build/C/man3/getspnam.3:42
1984 #, no-wrap
1985 msgid "B<int getspent_r(struct spwd *>I<spbuf>B<,>\n"
1986 msgstr ""
1987
1988 #. type: Plain text
1989 #: build/C/man3/getspnam.3:44 build/C/man3/getspnam.3:48 build/C/man3/getspnam.3:52 build/C/man3/getspnam.3:56
1990 #, no-wrap
1991 msgid ""
1992 "B<        char *>I<buf>B<, size_t >I<buflen>B<, struct spwd "
1993 "**>I<spbufp>B<);>\n"
1994 msgstr ""
1995
1996 #. type: Plain text
1997 #: build/C/man3/getspnam.3:46
1998 #, no-wrap
1999 msgid "B<int getspnam_r(const char *>I<name>B<, struct spwd *>I<spbuf>B<,>\n"
2000 msgstr ""
2001
2002 #. type: Plain text
2003 #: build/C/man3/getspnam.3:50
2004 #, no-wrap
2005 msgid "B<int fgetspent_r(FILE *>I<fp>B<, struct spwd *>I<spbuf>B<,>\n"
2006 msgstr ""
2007
2008 #. type: Plain text
2009 #: build/C/man3/getspnam.3:54
2010 #, no-wrap
2011 msgid "B<int sgetspent_r(const char *>I<s>B<, struct spwd *>I<spbuf>B<,>\n"
2012 msgstr ""
2013
2014 #. type: Plain text
2015 #: build/C/man3/getspnam.3:68
2016 msgid "B<getspent_r>(), B<getspnam_r>(), B<fgetspent_r>(), B<sgetspent_r>():"
2017 msgstr ""
2018
2019 #. type: Plain text
2020 #: build/C/man3/getspnam.3:70
2021 msgid "_BSD_SOURCE || _SVID_SOURCE"
2022 msgstr ""
2023
2024 #. type: Plain text
2025 #: build/C/man3/getspnam.3:84
2026 msgid ""
2027 "Long ago it was considered safe to have encrypted passwords openly visible "
2028 "in the password file.  When computers got faster and people got more "
2029 "security-conscious, this was no longer acceptable.  Julianne Frances Haugh "
2030 "implemented the shadow password suite that keeps the encrypted passwords in "
2031 "the shadow password database (e.g., the local shadow password file "
2032 "I</etc/shadow>, NIS, and LDAP), readable only by root."
2033 msgstr ""
2034
2035 #.  FIXME I've commented out the following for the
2036 #.  moment.  The relationship between PAM and nsswitch.conf needs
2037 #.  to be clearly documented in one place, which is pointed to by
2038 #.  the pages for the user, group, and shadow password functions.
2039 #.  (Jul 2005, mtk)
2040 #
2041 #.  This shadow password setup has been superseded by PAM
2042 #.  (pluggable authentication modules), and the file
2043 #.  .I /etc/nsswitch.conf
2044 #.  now describes the sources to be used.
2045 #. type: Plain text
2046 #: build/C/man3/getspnam.3:101
2047 msgid ""
2048 "The functions described below resemble those for the traditional password "
2049 "database (e.g., see B<getpwnam>(3)  and B<getpwent>(3))."
2050 msgstr ""
2051
2052 #. type: Plain text
2053 #: build/C/man3/getspnam.3:108
2054 msgid ""
2055 "The B<getspnam>()  function returns a pointer to a structure containing the "
2056 "broken-out fields of the record in the shadow password database that matches "
2057 "the username I<name>."
2058 msgstr ""
2059
2060 #.  some systems require a call of setspent() before the first getspent()
2061 #.  glibc does not
2062 #. type: Plain text
2063 #: build/C/man3/getspnam.3:120
2064 msgid ""
2065 "The B<getspent>()  function returns a pointer to the next entry in the "
2066 "shadow password database.  The position in the input stream is initialized "
2067 "by B<setspent>().  When done reading, the program may call B<endspent>()  so "
2068 "that resources can be deallocated."
2069 msgstr ""
2070
2071 #. type: Plain text
2072 #: build/C/man3/getspnam.3:127
2073 msgid ""
2074 "The B<fgetspent>()  function is similar to B<getspent>()  but uses the "
2075 "supplied stream instead of the one implicitly opened by B<setspent>()."
2076 msgstr ""
2077
2078 #. type: Plain text
2079 #: build/C/man3/getspnam.3:134
2080 msgid ""
2081 "The B<sgetspent>()  function parses the supplied string I<s> into a struct "
2082 "I<spwd>."
2083 msgstr ""
2084
2085 #. type: Plain text
2086 #: build/C/man3/getspnam.3:144
2087 msgid ""
2088 "The B<putspent>()  function writes the contents of the supplied struct "
2089 "I<spwd> I<*p> as a text line in the shadow password file format to the "
2090 "stream I<fp>.  String entries with value NULL and numerical entries with "
2091 "value -1 are written as an empty string."
2092 msgstr ""
2093
2094 #. type: Plain text
2095 #: build/C/man3/getspnam.3:159
2096 msgid ""
2097 "The B<lckpwdf>()  function is intended to protect against multiple "
2098 "simultaneous accesses of the shadow password database.  It tries to acquire "
2099 "a lock, and returns 0 on success, or -1 on failure (lock not obtained within "
2100 "15 seconds).  The B<ulckpwdf>()  function releases the lock again.  Note "
2101 "that there is no protection against direct access of the shadow password "
2102 "file.  Only programs that use B<lckpwdf>()  will notice the lock."
2103 msgstr ""
2104
2105 #.  Also in libc5
2106 #.  SUN doesn't have sgetspent()
2107 #. type: Plain text
2108 #: build/C/man3/getspnam.3:164
2109 msgid ""
2110 "These were the functions that formed the original shadow API.  They are "
2111 "widely available."
2112 msgstr ""
2113
2114 #. type: SS
2115 #: build/C/man3/getspnam.3:164
2116 #, no-wrap
2117 msgid "Reentrant versions"
2118 msgstr ""
2119
2120 #. type: Plain text
2121 #: build/C/man3/getspnam.3:181
2122 msgid ""
2123 "Analogous to the reentrant functions for the password database, glibc also "
2124 "has reentrant functions for the shadow password database.  The "
2125 "B<getspnam_r>()  function is like B<getspnam>()  but stores the retrieved "
2126 "shadow password structure in the space pointed to by I<spbuf>.  This shadow "
2127 "password structure contains pointers to strings, and these strings are "
2128 "stored in the buffer I<buf> of size I<buflen>.  A pointer to the result (in "
2129 "case of success) or NULL (in case no entry was found or an error occurred) "
2130 "is stored in I<*spbufp>."
2131 msgstr ""
2132
2133 #. type: Plain text
2134 #: build/C/man3/getspnam.3:188
2135 msgid ""
2136 "The functions B<getspent_r>(), B<fgetspent_r>(), and B<sgetspent_r>()  are "
2137 "similarly analogous to their nonreentrant counterparts."
2138 msgstr ""
2139
2140 #.  SUN doesn't have sgetspent_r()
2141 #. type: Plain text
2142 #: build/C/man3/getspnam.3:192
2143 msgid ""
2144 "Some non-glibc systems also have functions with these names, often with "
2145 "different prototypes."
2146 msgstr ""
2147
2148 #. type: SS
2149 #: build/C/man3/getspnam.3:192
2150 #, no-wrap
2151 msgid "Structure"
2152 msgstr ""
2153
2154 #. type: Plain text
2155 #: build/C/man3/getspnam.3:194
2156 msgid ""
2157 "The shadow password structure is defined in I<E<lt>shadow.hE<gt>> as "
2158 "follows:"
2159 msgstr ""
2160
2161 #. type: Plain text
2162 #: build/C/man3/getspnam.3:214
2163 #, no-wrap
2164 msgid ""
2165 "struct spwd {\n"
2166 "    char *sp_namp;     /* Login name */\n"
2167 "    char *sp_pwdp;     /* Encrypted password */\n"
2168 "    long  sp_lstchg;   /* Date of last change\n"
2169 "                          (measured in days since\n"
2170 "                          1970-01-01 00:00:00 +0000 (UTC)) */\n"
2171 "    long  sp_min;      /* Min # of days between changes */\n"
2172 "    long  sp_max;      /* Max # of days between changes */\n"
2173 "    long  sp_warn;     /* # of days before password expires\n"
2174 "                          to warn user to change it */\n"
2175 "    long  sp_inact;    /* # of days after password expires\n"
2176 "                          until account is disabled */\n"
2177 "    long  sp_expire;   /* Date when account expires\n"
2178 "                          (measured in days since\n"
2179 "                          1970-01-01 00:00:00 +0000 (UTC)) */\n"
2180 "    unsigned long sp_flag;  /* Reserved */\n"
2181 "};\n"
2182 msgstr ""
2183
2184 #. type: Plain text
2185 #: build/C/man3/getspnam.3:223
2186 msgid ""
2187 "The functions that return a pointer return NULL if no more entries are "
2188 "available or if an error occurs during processing.  The functions which have "
2189 "I<int> as the return value return 0 for success and -1 for failure, with "
2190 "I<errno> set to indicate the cause of the error."
2191 msgstr ""
2192
2193 #. type: Plain text
2194 #: build/C/man3/getspnam.3:226
2195 msgid ""
2196 "For the nonreentrant functions, the return value may point to static area, "
2197 "and may be overwritten by subsequent calls to these functions."
2198 msgstr ""
2199
2200 #. type: Plain text
2201 #: build/C/man3/getspnam.3:229
2202 msgid ""
2203 "The reentrant functions return zero on success.  In case of error, an error "
2204 "number is returned."
2205 msgstr ""
2206
2207 #. type: TP
2208 #: build/C/man3/getspnam.3:230
2209 #, no-wrap
2210 msgid "B<EACCES>"
2211 msgstr ""
2212
2213 #. type: Plain text
2214 #: build/C/man3/getspnam.3:233
2215 msgid "The caller does not have permission to access the shadow password file."
2216 msgstr ""
2217
2218 #. type: Plain text
2219 #: build/C/man3/getspnam.3:236
2220 msgid "Supplied buffer is too small."
2221 msgstr ""
2222
2223 #. type: TP
2224 #: build/C/man3/getspnam.3:237
2225 #, no-wrap
2226 msgid "I</etc/shadow>"
2227 msgstr ""
2228
2229 #. type: Plain text
2230 #: build/C/man3/getspnam.3:240
2231 msgid "local shadow password database file"
2232 msgstr ""
2233
2234 #. type: TP
2235 #: build/C/man3/getspnam.3:240
2236 #, no-wrap
2237 msgid "I</etc/.pwd.lock>"
2238 msgstr ""
2239
2240 #. type: Plain text
2241 #: build/C/man3/getspnam.3:243
2242 msgid "lock file"
2243 msgstr ""
2244
2245 #. type: Plain text
2246 #: build/C/man3/getspnam.3:249
2247 msgid ""
2248 "The include file I<E<lt>paths.hE<gt>> defines the constant B<_PATH_SHADOW> "
2249 "to the pathname of the shadow password file."
2250 msgstr ""
2251
2252 #. type: Plain text
2253 #: build/C/man3/getspnam.3:253
2254 msgid ""
2255 "The shadow password database and its associated API are not specified in "
2256 "POSIX.1-2001.  However, many other systems provide a similar API."
2257 msgstr ""
2258
2259 #. type: Plain text
2260 #: build/C/man3/getspnam.3:258
2261 msgid "B<getgrnam>(3), B<getpwnam>(3), B<getpwnam_r>(3), B<shadow>(5)"
2262 msgstr ""
2263
2264 #. type: TH
2265 #: build/C/man5/group.5:26
2266 #, no-wrap
2267 msgid "GROUP"
2268 msgstr ""
2269
2270 #. type: Plain text
2271 #: build/C/man5/group.5:29
2272 msgid "group - user group file"
2273 msgstr ""
2274
2275 #. type: Plain text
2276 #: build/C/man5/group.5:34
2277 msgid ""
2278 "The I</etc/group> file is a text file that defines the groups on the "
2279 "system.  There is one entry per line, with the following format:"
2280 msgstr ""
2281
2282 #. type: Plain text
2283 #: build/C/man5/group.5:37
2284 msgid "group_name:password:GID:user_list"
2285 msgstr ""
2286
2287 #. type: Plain text
2288 #: build/C/man5/group.5:40
2289 msgid "The fields are as follows:"
2290 msgstr ""
2291
2292 #. type: TP
2293 #: build/C/man5/group.5:40
2294 #, no-wrap
2295 msgid "I<group_name>"
2296 msgstr ""
2297
2298 #. type: Plain text
2299 #: build/C/man5/group.5:43
2300 msgid "the name of the group."
2301 msgstr ""
2302
2303 #. type: TP
2304 #: build/C/man5/group.5:43 build/C/man5/passwd.5:91
2305 #, no-wrap
2306 msgid "I<password>"
2307 msgstr ""
2308
2309 #. type: Plain text
2310 #: build/C/man5/group.5:47
2311 msgid ""
2312 "the (encrypted) group password.  If this field is empty, no password is "
2313 "needed."
2314 msgstr ""
2315
2316 #. type: TP
2317 #: build/C/man5/group.5:47 build/C/man5/passwd.5:103
2318 #, no-wrap
2319 msgid "I<GID>"
2320 msgstr ""
2321
2322 #. type: Plain text
2323 #: build/C/man5/group.5:50
2324 msgid "the numeric group ID."
2325 msgstr ""
2326
2327 #. type: TP
2328 #: build/C/man5/group.5:50
2329 #, no-wrap
2330 msgid "I<user_list>"
2331 msgstr ""
2332
2333 #. type: Plain text
2334 #: build/C/man5/group.5:53
2335 msgid "a list of the usernames that are members of this group, separated by commas."
2336 msgstr ""
2337
2338 #. type: Plain text
2339 #: build/C/man5/group.5:55
2340 msgid "/etc/group"
2341 msgstr ""
2342
2343 #. type: Plain text
2344 #: build/C/man5/group.5:61
2345 msgid ""
2346 "As the 4.2BSD B<initgroups>(3)  man page says: No-one seems to keep "
2347 "I</etc/group> up-to-date."
2348 msgstr ""
2349
2350 #. type: Plain text
2351 #: build/C/man5/group.5:67
2352 msgid "B<login>(1), B<newgrp>(1), B<getgrent>(3), B<getgrnam>(3), B<passwd>(5)"
2353 msgstr ""
2354
2355 #. type: TH
2356 #: build/C/man3/initgroups.3:32
2357 #, no-wrap
2358 msgid "INITGROUPS"
2359 msgstr ""
2360
2361 #. type: TH
2362 #: build/C/man3/initgroups.3:32
2363 #, no-wrap
2364 msgid "2007-07-26"
2365 msgstr ""
2366
2367 #. type: Plain text
2368 #: build/C/man3/initgroups.3:35
2369 msgid "initgroups - initialize the supplementary group access list"
2370 msgstr ""
2371
2372 #. type: Plain text
2373 #: build/C/man3/initgroups.3:41
2374 #, no-wrap
2375 msgid "B<int initgroups(const char *>I<user>B<, gid_t >I<group>B<);>\n"
2376 msgstr ""
2377
2378 #. type: Plain text
2379 #: build/C/man3/initgroups.3:50
2380 msgid "B<initgroups>(): _BSD_SOURCE"
2381 msgstr ""
2382
2383 #. type: Plain text
2384 #: build/C/man3/initgroups.3:64
2385 msgid ""
2386 "The B<initgroups>()  function initializes the group access list by reading "
2387 "the group database I</etc/group> and using all groups of which I<user> is a "
2388 "member.  The additional group I<group> is also added to the list."
2389 msgstr ""
2390
2391 #. type: Plain text
2392 #: build/C/man3/initgroups.3:68
2393 msgid "The I<user> argument must be non-NULL."
2394 msgstr ""
2395
2396 #. type: Plain text
2397 #: build/C/man3/initgroups.3:75
2398 msgid ""
2399 "The B<initgroups>()  function returns 0 on success.  On error, -1 is "
2400 "returned, and I<errno> is set appropriately."
2401 msgstr ""
2402
2403 #. type: Plain text
2404 #: build/C/man3/initgroups.3:79
2405 msgid "Insufficient memory to allocate group information structure."
2406 msgstr ""
2407
2408 #. type: TP
2409 #: build/C/man3/initgroups.3:79
2410 #, no-wrap
2411 msgid "B<EPERM>"
2412 msgstr ""
2413
2414 #. type: Plain text
2415 #: build/C/man3/initgroups.3:84
2416 msgid ""
2417 "The calling process has insufficient privilege.  See the underlying system "
2418 "call B<setgroups>(2)."
2419 msgstr ""
2420
2421 #. type: Plain text
2422 #: build/C/man3/initgroups.3:87
2423 #, no-wrap
2424 msgid "I</etc/group>\t\tgroup database file\n"
2425 msgstr ""
2426
2427 #. type: Plain text
2428 #: build/C/man3/initgroups.3:90
2429 msgid "SVr4, 4.3BSD."
2430 msgstr ""
2431
2432 #. type: Plain text
2433 #: build/C/man3/initgroups.3:94
2434 msgid "B<getgroups>(2), B<setgroups>(2), B<credentials>(7)"
2435 msgstr ""
2436
2437 #. type: TH
2438 #: build/C/man5/passwd.5:30
2439 #, no-wrap
2440 msgid "PASSWD"
2441 msgstr ""
2442
2443 #. type: TH
2444 #: build/C/man5/passwd.5:30
2445 #, no-wrap
2446 msgid "2012-05-03"
2447 msgstr ""
2448
2449 #. type: Plain text
2450 #: build/C/man5/passwd.5:33
2451 msgid "passwd - password file"
2452 msgstr ""
2453
2454 #. type: Plain text
2455 #: build/C/man5/passwd.5:41
2456 msgid ""
2457 "The I</etc/passwd> file is a text file that describes user login accounts "
2458 "for the system.  It should have read permission allowed for all users (many "
2459 "utilities, like B<ls>(1)  use it to map user IDs to usernames), but write "
2460 "access only for the superuser."
2461 msgstr ""
2462
2463 #. type: Plain text
2464 #: build/C/man5/passwd.5:53
2465 msgid ""
2466 "In the good old days there was no great problem with this general read "
2467 "permission.  Everybody could read the encrypted passwords, but the hardware "
2468 "was too slow to crack a well-chosen password, and moreover the basic "
2469 "assumption used to be that of a friendly user-community.  These days many "
2470 "people run some version of the shadow password suite, where I</etc/passwd> "
2471 "has an \\(aqx\\(aq character in the password field, and the encrypted "
2472 "passwords are in I</etc/shadow>, which is readable by the superuser only."
2473 msgstr ""
2474
2475 #. type: Plain text
2476 #: build/C/man5/passwd.5:62
2477 msgid ""
2478 "If the encrypted password, whether in I</etc/passwd> or in I</etc/shadow>, "
2479 "is an empty string, login is allowed without even asking for a password.  "
2480 "Note that this functionality may be intentionally disabled in applications, "
2481 "or configurable (for example using the \"nullok\" or \"nonull\" arguments to "
2482 "pam_unix.so)."
2483 msgstr ""
2484
2485 #. type: Plain text
2486 #: build/C/man5/passwd.5:67
2487 msgid ""
2488 "If the encrypted password in I</etc/passwd> is \"I<*NP*>\" (without the "
2489 "quotes), the shadow record should be obtained from an NIS+ server."
2490 msgstr ""
2491
2492 #. type: Plain text
2493 #: build/C/man5/passwd.5:73
2494 msgid ""
2495 "Regardless of whether shadow passwords are used, many system administrators "
2496 "use an asterisk (*) in the encrypted password field to make sure that this "
2497 "user can not authenticate him- or herself using a password.  (But see NOTES "
2498 "below.)"
2499 msgstr ""
2500
2501 #. type: Plain text
2502 #: build/C/man5/passwd.5:78
2503 msgid ""
2504 "If you create a new login, first put an asterisk (*) in the password field, "
2505 "then use B<passwd>(1)  to set it."
2506 msgstr ""
2507
2508 #. type: Plain text
2509 #: build/C/man5/passwd.5:81
2510 msgid ""
2511 "Each line of the file describes a single user, and contains seven "
2512 "colon-separated fields:"
2513 msgstr ""
2514
2515 #. type: Plain text
2516 #: build/C/man5/passwd.5:84
2517 msgid "name:password:UID:GID:GECOS:directory:shell"
2518 msgstr ""
2519
2520 #. type: Plain text
2521 #: build/C/man5/passwd.5:87
2522 msgid "The field are as follows:"
2523 msgstr ""
2524
2525 #. type: TP
2526 #: build/C/man5/passwd.5:87
2527 #, no-wrap
2528 msgid "I<name>"
2529 msgstr ""
2530
2531 #. type: Plain text
2532 #: build/C/man5/passwd.5:91
2533 msgid "This is the user's login name.  It should not contain capital letters."
2534 msgstr ""
2535
2536 #. type: Plain text
2537 #: build/C/man5/passwd.5:98
2538 msgid ""
2539 "This is either the encrypted user password, an asterisk (*), or the letter "
2540 "\\(aqx\\(aq.  (See B<pwconv>(8)  for an explanation of \\(aqx\\(aq.)"
2541 msgstr ""
2542
2543 #. type: TP
2544 #: build/C/man5/passwd.5:98
2545 #, no-wrap
2546 msgid "I<UID>"
2547 msgstr ""
2548
2549 #. type: Plain text
2550 #: build/C/man5/passwd.5:103
2551 msgid "The privileged I<root> login account (superuser) has the user ID 0."
2552 msgstr ""
2553
2554 #. type: Plain text
2555 #: build/C/man5/passwd.5:108
2556 msgid ""
2557 "This is the numeric primary group ID for this user.  (Additional groups for "
2558 "the user are defined in the system group file; see B<group>(5))."
2559 msgstr ""
2560
2561 #. type: TP
2562 #: build/C/man5/passwd.5:108
2563 #, no-wrap
2564 msgid "I<GECOS>"
2565 msgstr ""
2566
2567 #. type: Plain text
2568 #: build/C/man5/passwd.5:116
2569 msgid ""
2570 "This field (sometimes called the \"comment field\")  is optional and used "
2571 "only for informational purposes.  Usually, it contains the full username.  "
2572 "Some programs (for example, B<finger>(1))  display information from this "
2573 "field."
2574 msgstr ""
2575
2576 #. type: Plain text
2577 #: build/C/man5/passwd.5:125
2578 msgid ""
2579 "GECOS stands for \"General Electric Comprehensive Operating System\", which "
2580 "was renamed to GCOS when GE's large systems division was sold to Honeywell.  "
2581 "Dennis Ritchie has reported: \"Sometimes we sent printer output or batch "
2582 "jobs to the GCOS machine.  The gcos field in the password file was a place "
2583 "to stash the information for the $IDENTcard.  Not elegant.\""
2584 msgstr ""
2585
2586 #. type: TP
2587 #: build/C/man5/passwd.5:125
2588 #, no-wrap
2589 msgid "I<directory>"
2590 msgstr ""
2591
2592 #. type: Plain text
2593 #: build/C/man5/passwd.5:132
2594 msgid ""
2595 "This is the user's home directory: the initial directory where the user is "
2596 "placed after logging in.  The value in this field is used to set the B<HOME> "
2597 "environment variable."
2598 msgstr ""
2599
2600 #. type: TP
2601 #: build/C/man5/passwd.5:132
2602 #, no-wrap
2603 msgid "I<shell>"
2604 msgstr ""
2605
2606 #. type: Plain text
2607 #: build/C/man5/passwd.5:142
2608 msgid ""
2609 "This is the program to run at login (if empty, use I</bin/sh>).  If set to a "
2610 "nonexistent executable, the user will be unable to login through "
2611 "B<login>(1).  The value in this field is used to set the B<SHELL> "
2612 "environment variable."
2613 msgstr ""
2614
2615 #. type: Plain text
2616 #: build/C/man5/passwd.5:148
2617 msgid ""
2618 "If you want to create user groups, there must be an entry in I</etc/group>, "
2619 "or no group will exist."
2620 msgstr ""
2621
2622 #. type: Plain text
2623 #: build/C/man5/passwd.5:162
2624 msgid ""
2625 "If the encrypted password is set to an asterisk (*), the user will be unable "
2626 "to login using B<login>(1), but may still login using B<rlogin>(1), run "
2627 "existing processes and initiate new ones through B<rsh>(1), B<cron>(8), "
2628 "B<at>(1), or mail filters, etc.  Trying to lock an account by simply "
2629 "changing the shell field yields the same result and additionally allows the "
2630 "use of B<su>(1)."
2631 msgstr ""
2632
2633 #. type: Plain text
2634 #: build/C/man5/passwd.5:171
2635 msgid ""
2636 "B<login>(1), B<passwd>(1), B<su>(1), B<getpwent>(3), B<getpwnam>(3), "
2637 "B<crypt>(3), B<group>(5), B<shadow>(5)"
2638 msgstr ""
2639
2640 #. type: TH
2641 #: build/C/man3/putgrent.3:7
2642 #, no-wrap
2643 msgid "PUTGRENT"
2644 msgstr ""
2645
2646 #. type: TH
2647 #: build/C/man3/putgrent.3:7 build/C/man3/setaliasent.3:9
2648 #, no-wrap
2649 msgid "2003-09-09"
2650 msgstr ""
2651
2652 #. type: Plain text
2653 #: build/C/man3/putgrent.3:10
2654 msgid "putgrent - write a group database entry to a file"
2655 msgstr ""
2656
2657 #. type: Plain text
2658 #: build/C/man3/putgrent.3:12
2659 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
2660 msgstr ""
2661
2662 #. type: Plain text
2663 #: build/C/man3/putgrent.3:16
2664 msgid "B<int putgrent(const struct group *>I<grp>B<, FILE *>I<fp>B<);>"
2665 msgstr ""
2666
2667 #. type: Plain text
2668 #: build/C/man3/putgrent.3:27
2669 msgid ""
2670 "The B<putgrent>()  function is the counterpart for B<fgetgrent>(3).  The "
2671 "function writes the content of the provided I<struct group> into the file "
2672 "pointed to by I<fp>.  The list of group members must be NULL-terminated or "
2673 "NULL-initialized."
2674 msgstr ""
2675
2676 #. type: Plain text
2677 #: build/C/man3/putgrent.3:31
2678 msgid "The I<struct group> is defined as follows:"
2679 msgstr ""
2680
2681 #. type: Plain text
2682 #: build/C/man3/putgrent.3:40
2683 #, no-wrap
2684 msgid ""
2685 "struct group {\n"
2686 "    char   *gr_name;      /* group name */\n"
2687 "    char   *gr_passwd;    /* group password */\n"
2688 "    gid_t   gr_gid;       /* group ID */\n"
2689 "    char  **gr_mem;       /* group members */\n"
2690 "};\n"
2691 msgstr ""
2692
2693 #. type: Plain text
2694 #: build/C/man3/putgrent.3:44
2695 msgid "The function returns zero on success, and a nonzero value on error."
2696 msgstr ""
2697
2698 #. type: Plain text
2699 #: build/C/man3/putgrent.3:46
2700 msgid "This function is a GNU extension."
2701 msgstr ""
2702
2703 #. type: Plain text
2704 #: build/C/man3/putgrent.3:50
2705 msgid "B<fgetgrent>(3), B<getgrent>(3), B<group>(5)"
2706 msgstr ""
2707
2708 #. type: TH
2709 #: build/C/man3/putpwent.3:30
2710 #, no-wrap
2711 msgid "PUTPWENT"
2712 msgstr ""
2713
2714 #. type: Plain text
2715 #: build/C/man3/putpwent.3:33
2716 msgid "putpwent - write a password file entry"
2717 msgstr ""
2718
2719 #. type: Plain text
2720 #: build/C/man3/putpwent.3:40
2721 #, no-wrap
2722 msgid "B<int putpwent(const struct passwd *>I<p>B<, FILE *>I<stream>B<);>\n"
2723 msgstr ""
2724
2725 #. type: Plain text
2726 #: build/C/man3/putpwent.3:49
2727 msgid "B<putpwent>(): _SVID_SOURCE"
2728 msgstr ""
2729
2730 #. type: Plain text
2731 #: build/C/man3/putpwent.3:54
2732 msgid ""
2733 "The B<putpwent>()  function writes a password entry from the structure I<p> "
2734 "in the file associated with I<stream>."
2735 msgstr ""
2736
2737 #. type: Plain text
2738 #: build/C/man3/putpwent.3:68
2739 #, no-wrap
2740 msgid ""
2741 "struct passwd {\n"
2742 "    char    *pw_name;        /* username */\n"
2743 "    char    *pw_passwd;      /* user password */\n"
2744 "    uid_t    pw_uid;         /* user ID */\n"
2745 "    gid_t    pw_gid;         /* group ID */\n"
2746 "    char    *pw_gecos;       /* real name */\n"
2747 "    char    *pw_dir;         /* home directory */\n"
2748 "    char    *pw_shell;       /* shell program */\n"
2749 "};\n"
2750 msgstr ""
2751
2752 #. type: Plain text
2753 #: build/C/man3/putpwent.3:78
2754 msgid ""
2755 "The B<putpwent>()  function returns 0 on success, or -1 if an error occurs.  "
2756 "In the event of an error, I<errno> is set to indicate the cause."
2757 msgstr ""
2758
2759 #. type: Plain text
2760 #: build/C/man3/putpwent.3:82
2761 msgid "Invalid (NULL) argument given."
2762 msgstr ""
2763
2764 #. type: Plain text
2765 #: build/C/man3/putpwent.3:92
2766 msgid ""
2767 "B<endpwent>(3), B<fgetpwent>(3), B<getpw>(3), B<getpwent>(3), "
2768 "B<getpwnam>(3), B<getpwuid>(3), B<setpwent>(3)"
2769 msgstr ""
2770
2771 #. type: TH
2772 #: build/C/man3/setaliasent.3:9
2773 #, no-wrap
2774 msgid "SETALIASENT"
2775 msgstr ""
2776
2777 #. type: Plain text
2778 #: build/C/man3/setaliasent.3:13
2779 msgid ""
2780 "setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, "
2781 "getaliasbyname_r - read an alias entry"
2782 msgstr ""
2783
2784 #. type: Plain text
2785 #: build/C/man3/setaliasent.3:15
2786 msgid "B<#include E<lt>aliases.hE<gt>>"
2787 msgstr ""
2788
2789 #. type: Plain text
2790 #: build/C/man3/setaliasent.3:17
2791 msgid "B<void setaliasent(void);>"
2792 msgstr ""
2793
2794 #. type: Plain text
2795 #: build/C/man3/setaliasent.3:19
2796 msgid "B<void endaliasent(void);>"
2797 msgstr ""
2798
2799 #. type: Plain text
2800 #: build/C/man3/setaliasent.3:21
2801 msgid "B<struct aliasent *getaliasent(void);>"
2802 msgstr ""
2803
2804 #. type: Plain text
2805 #: build/C/man3/setaliasent.3:23
2806 msgid "B<int getaliasent_r(struct aliasent *>I<result>B<,>"
2807 msgstr ""
2808
2809 #. type: Plain text
2810 #: build/C/man3/setaliasent.3:25 build/C/man3/setaliasent.3:31
2811 msgid "B< char *>I<buffer>B<, size_t >I<buflen>B<, struct aliasent **>I<res>B<);>"
2812 msgstr ""
2813
2814 #. type: Plain text
2815 #: build/C/man3/setaliasent.3:27
2816 msgid "B<struct aliasent *getaliasbyname(const char *>I<name>B<);>"
2817 msgstr ""
2818
2819 #. type: Plain text
2820 #: build/C/man3/setaliasent.3:29
2821 msgid ""
2822 "B<int getaliasbyname_r(const char *>I<name>B<, struct aliasent "
2823 "*>I<result>B<,>"
2824 msgstr ""
2825
2826 #. type: Plain text
2827 #: build/C/man3/setaliasent.3:37
2828 msgid ""
2829 "One of the databases available with the Name Service Switch (NSS)  is the "
2830 "aliases database, that contains mail aliases.  (To find out which databases "
2831 "are supported, try I<getent --help>.)  Six functions are provided to access "
2832 "the aliases database."
2833 msgstr ""
2834
2835 #. type: Plain text
2836 #: build/C/man3/setaliasent.3:44
2837 msgid ""
2838 "The B<getaliasent>()  function returns a pointer to a structure containing "
2839 "the group information from the aliases database.  The first time it is "
2840 "called it returns the first entry; thereafter, it returns successive "
2841 "entries."
2842 msgstr ""
2843
2844 #. type: Plain text
2845 #: build/C/man3/setaliasent.3:49
2846 msgid ""
2847 "The B<setaliasent>()  function rewinds the file pointer to the beginning of "
2848 "the aliases database."
2849 msgstr ""
2850
2851 #. type: Plain text
2852 #: build/C/man3/setaliasent.3:53
2853 msgid "The B<endaliasent>()  function closes the aliases database."
2854 msgstr ""
2855
2856 #. type: Plain text
2857 #: build/C/man3/setaliasent.3:60
2858 msgid ""
2859 "B<getaliasent_r>()  is the reentrant version of the previous function.  The "
2860 "requested structure is stored via the first argument but the programmer "
2861 "needs to fill the other arguments also.  Not providing enough space causes "
2862 "the function to fail."
2863 msgstr ""
2864
2865 #. type: Plain text
2866 #: build/C/man3/setaliasent.3:66
2867 msgid ""
2868 "The function B<getaliasbyname>()  takes the name argument and searches the "
2869 "aliases database.  The entry is returned as a pointer to a I<struct "
2870 "aliasent>."
2871 msgstr ""
2872
2873 #. type: Plain text
2874 #: build/C/man3/setaliasent.3:73
2875 msgid ""
2876 "B<getaliasbyname_r>()  is the reentrant version of the previous function.  "
2877 "The requested structure is stored via the second argument but the programmer "
2878 "needs to fill the other arguments also.  Not providing enough space causes "
2879 "the function to fail."
2880 msgstr ""
2881
2882 #. type: Plain text
2883 #: build/C/man3/setaliasent.3:78
2884 msgid "The I<struct aliasent> is defined in I<E<lt>aliases.hE<gt>>:"
2885 msgstr ""
2886
2887 #. type: Plain text
2888 #: build/C/man3/setaliasent.3:87
2889 #, no-wrap
2890 msgid ""
2891 "struct aliasent {\n"
2892 "    char    *alias_name;             /* alias name */\n"
2893 "    size_t   alias_members_len;\n"
2894 "    char   **alias_members;          /* alias name list */\n"
2895 "    int      alias_local;\n"
2896 "};\n"
2897 msgstr ""
2898
2899 #. type: Plain text
2900 #: build/C/man3/setaliasent.3:95
2901 msgid ""
2902 "The functions B<getaliasent_r>()  and B<getaliasbyname_r>()  return a "
2903 "nonzero value on error."
2904 msgstr ""
2905
2906 #. type: Plain text
2907 #: build/C/man3/setaliasent.3:101
2908 msgid ""
2909 "The default alias database is the file I</etc/aliases>.  This can be changed "
2910 "in the I</etc/nsswitch.conf> file."
2911 msgstr ""
2912
2913 #. type: Plain text
2914 #: build/C/man3/setaliasent.3:104
2915 msgid "These routines are glibc-specific.  The NeXT system has similar routines:"
2916 msgstr ""
2917
2918 #. type: Plain text
2919 #: build/C/man3/setaliasent.3:108
2920 #, no-wrap
2921 msgid "#include E<lt>aliasdb.hE<gt>\n"
2922 msgstr ""
2923
2924 #. type: Plain text
2925 #: build/C/man3/setaliasent.3:113
2926 #, no-wrap
2927 msgid ""
2928 "void alias_setent(void);\n"
2929 "void alias_endent(void);\n"
2930 "alias_ent *alias_getent(void);\n"
2931 "alias_ent *alias_getbyname(char *name);\n"
2932 msgstr ""
2933
2934 #. type: Plain text
2935 #: build/C/man3/setaliasent.3:119
2936 msgid ""
2937 "The following example compiles with I<gcc example.c -o example>.  It will "
2938 "dump all names in the alias database."
2939 msgstr ""
2940
2941 #. type: Plain text
2942 #: build/C/man3/setaliasent.3:125
2943 #, no-wrap
2944 msgid ""
2945 "#include E<lt>aliases.hE<gt>\n"
2946 "#include E<lt>stdio.hE<gt>\n"
2947 "#include E<lt>stdlib.hE<gt>\n"
2948 "#include E<lt>errno.hE<gt>\n"
2949 msgstr ""
2950
2951 #. type: Plain text
2952 #: build/C/man3/setaliasent.3:144
2953 #, no-wrap
2954 msgid ""
2955 "int\n"
2956 "main(void)\n"
2957 "{\n"
2958 "    struct aliasent *al;\n"
2959 "    setaliasent();\n"
2960 "    for (;;) {\n"
2961 "        al = getaliasent();\n"
2962 "        if (al == NULL)\n"
2963 "            break;\n"
2964 "        printf(\"Name: %s\\en\", al-E<gt>alias_name);\n"
2965 "    }\n"
2966 "    if (errno) {\n"
2967 "        perror(\"reading alias\");\n"
2968 "        exit(EXIT_FAILURE);\n"
2969 "    }\n"
2970 "    endaliasent();\n"
2971 "    exit(EXIT_SUCCESS);\n"
2972 "}\n"
2973 msgstr ""
2974
2975 #
2976 #.  /etc/sendmail/aliases
2977 #.  Yellow Pages
2978 #.  newaliases, postalias
2979 #. type: Plain text
2980 #: build/C/man3/setaliasent.3:154
2981 msgid "B<getgrent>(3), B<getpwent>(3), B<getspent>(3), B<aliases>(5)"
2982 msgstr ""