OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.39.
[linuxjm/LDP_man-pages.git] / po4a / utmp / po / utmp.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: 2012-04-25 05:37+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=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man3/getutent.3:30
21 #, no-wrap
22 msgid "GETUTENT"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man3/getutent.3:30
27 #, no-wrap
28 msgid "2008-06-29"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man3/getutent.3:30 build/C/man3/getutmp.3:24 build/C/man3/login.3:24 build/C/man3/updwtmp.3:23 build/C/man5/utmp.5:29
33 #, no-wrap
34 msgid "Linux Programmer's Manual"
35 msgstr ""
36
37 #. type: SH
38 #: build/C/man3/getutent.3:31 build/C/man3/getutmp.3:25 build/C/man3/login.3:25 build/C/man3/updwtmp.3:24 build/C/man5/utmp.5:30
39 #, no-wrap
40 msgid "NAME"
41 msgstr ""
42
43 #. type: Plain text
44 #: build/C/man3/getutent.3:34
45 msgid ""
46 "getutent, getutid, getutline, pututline, setutent, endutent, utmpname - "
47 "access utmp file entries"
48 msgstr ""
49
50 #. type: SH
51 #: build/C/man3/getutent.3:34 build/C/man3/getutmp.3:27 build/C/man3/login.3:27 build/C/man3/updwtmp.3:26 build/C/man5/utmp.5:32
52 #, no-wrap
53 msgid "SYNOPSIS"
54 msgstr ""
55
56 #. type: Plain text
57 #: build/C/man3/getutent.3:36 build/C/man3/login.3:29 build/C/man5/utmp.5:34
58 msgid "B<#include E<lt>utmp.hE<gt>>"
59 msgstr ""
60
61 #. type: Plain text
62 #: build/C/man3/getutent.3:38
63 msgid "B<struct utmp *getutent(void);>"
64 msgstr ""
65
66 #. type: Plain text
67 #: build/C/man3/getutent.3:40
68 msgid "B<struct utmp *getutid(struct utmp *>I<ut>B<);>"
69 msgstr ""
70
71 #. type: Plain text
72 #: build/C/man3/getutent.3:42
73 msgid "B<struct utmp *getutline(struct utmp *>I<ut>B<);>"
74 msgstr ""
75
76 #. type: Plain text
77 #: build/C/man3/getutent.3:44
78 msgid "B<struct utmp *pututline(struct utmp *>I<ut>B<);>"
79 msgstr ""
80
81 #. type: Plain text
82 #: build/C/man3/getutent.3:46
83 msgid "B<void setutent(void);>"
84 msgstr ""
85
86 #. type: Plain text
87 #: build/C/man3/getutent.3:48
88 msgid "B<void endutent(void);>"
89 msgstr ""
90
91 #. type: Plain text
92 #: build/C/man3/getutent.3:50
93 msgid "B<int utmpname(const char *>I<file>B<);>"
94 msgstr ""
95
96 #. type: SH
97 #: build/C/man3/getutent.3:50 build/C/man3/getutmp.3:35 build/C/man3/login.3:35 build/C/man3/updwtmp.3:35 build/C/man5/utmp.5:34
98 #, no-wrap
99 msgid "DESCRIPTION"
100 msgstr ""
101
102 #. type: Plain text
103 #: build/C/man3/getutent.3:53
104 msgid ""
105 "New applications should use the POSIX.1-specified \"utmpx\" versions of "
106 "these functions; see CONFORMING TO."
107 msgstr ""
108
109 #. type: Plain text
110 #: build/C/man3/getutent.3:62
111 msgid ""
112 "B<utmpname>()  sets the name of the utmp-format file for the other utmp "
113 "functions to access.  If B<utmpname>()  is not used to set the filename "
114 "before the other functions are used, they assume B<_PATH_UTMP>, as defined "
115 "in I<E<lt>paths.hE<gt>>."
116 msgstr ""
117
118 #. type: Plain text
119 #: build/C/man3/getutent.3:67
120 msgid ""
121 "B<setutent>()  rewinds the file pointer to the beginning of the utmp file.  "
122 "It is generally a good idea to call it before any of the other functions."
123 msgstr ""
124
125 #. type: Plain text
126 #: build/C/man3/getutent.3:72
127 msgid ""
128 "B<endutent>()  closes the utmp file.  It should be called when the user code "
129 "is done accessing the file with the other functions."
130 msgstr ""
131
132 #. type: Plain text
133 #: build/C/man3/getutent.3:79
134 msgid ""
135 "B<getutent>()  reads a line from the current file position in the utmp "
136 "file.  It returns a pointer to a structure containing the fields of the "
137 "line.  The definition of this structure is shown in B<utmp>(5)."
138 msgstr ""
139
140 #. type: Plain text
141 #: build/C/man3/getutent.3:95
142 msgid ""
143 "B<getutid>()  searches forward from the current file position in the utmp "
144 "file based upon I<ut>.  If I<ut-E<gt>ut_type> is one of B<RUN_LVL>, "
145 "B<BOOT_TIME>, B<NEW_TIME>, or B<OLD_TIME>, B<getutid>()  will find the first "
146 "entry whose I<ut_type> field matches I<ut-E<gt>ut_type>.  If "
147 "I<ut-E<gt>ut_type> is one of B<INIT_PROCESS>, B<LOGIN_PROCESS>, "
148 "B<USER_PROCESS>, or B<DEAD_PROCESS>, B<getutid>()  will find the first entry "
149 "whose I<ut_id> field matches I<ut-E<gt>ut_id>."
150 msgstr ""
151
152 #. type: Plain text
153 #: build/C/man3/getutent.3:105
154 msgid ""
155 "B<getutline>()  searches forward from the current file position in the utmp "
156 "file.  It scans entries whose I<ut_type> is B<USER_PROCESS> or "
157 "B<LOGIN_PROCESS> and returns the first one whose I<ut_line> field matches "
158 "I<ut-E<gt>ut_line>."
159 msgstr ""
160
161 #. type: Plain text
162 #: build/C/man3/getutent.3:117
163 msgid ""
164 "B<pututline>()  writes the I<utmp> structure I<ut> into the utmp file.  It "
165 "uses B<getutid>()  to search for the proper place in the file to insert the "
166 "new entry.  If it cannot find an appropriate slot for I<ut>, B<pututline>()  "
167 "will append the new entry to the end of the file."
168 msgstr ""
169
170 #. type: SH
171 #: build/C/man3/getutent.3:117 build/C/man3/getutmp.3:49 build/C/man3/login.3:87
172 #, no-wrap
173 msgid "RETURN VALUE"
174 msgstr ""
175
176 #. type: Plain text
177 #: build/C/man3/getutent.3:126
178 msgid ""
179 "B<getutent>(), B<getutid>(), and B<getutline>()  return a pointer to a "
180 "I<struct utmp> on success, and NULL on failure (which includes the \"record "
181 "not found\" case).  This I<struct utmp> is allocated in static storage, and "
182 "may be overwritten by subsequent calls."
183 msgstr ""
184
185 #. type: Plain text
186 #: build/C/man3/getutent.3:132
187 msgid "On success B<pututline>()  returns I<ut>; on failure, it returns NULL."
188 msgstr ""
189
190 #. type: Plain text
191 #: build/C/man3/getutent.3:135
192 msgid ""
193 "B<utmpname>()  returns 0 if the new name was successfully stored, or -1 on "
194 "failure."
195 msgstr ""
196
197 #. type: SH
198 #: build/C/man3/getutent.3:135
199 #, no-wrap
200 msgid "ERRORS"
201 msgstr ""
202
203 #. type: TP
204 #: build/C/man3/getutent.3:136
205 #, no-wrap
206 msgid "B<ENOMEM>"
207 msgstr ""
208
209 #. type: Plain text
210 #: build/C/man3/getutent.3:139
211 msgid "Out of memory."
212 msgstr ""
213
214 #. type: TP
215 #: build/C/man3/getutent.3:139
216 #, no-wrap
217 msgid "B<ESRCH>"
218 msgstr ""
219
220 #. type: Plain text
221 #: build/C/man3/getutent.3:142
222 msgid "Record not found."
223 msgstr ""
224
225 #. type: Plain text
226 #: build/C/man3/getutent.3:149
227 msgid ""
228 "B<setutent>(), B<pututline>(), and the B<getut* ()> functions can also fail "
229 "for the reasons described in B<open>(2)."
230 msgstr ""
231
232 #. type: SH
233 #: build/C/man3/getutent.3:149 build/C/man3/login.3:92 build/C/man3/updwtmp.3:48 build/C/man5/utmp.5:223
234 #, no-wrap
235 msgid "FILES"
236 msgstr ""
237
238 #. type: Plain text
239 #: build/C/man3/getutent.3:151
240 msgid "/var/run/utmp\tdatabase of currently logged-in users"
241 msgstr ""
242
243 #. type: Plain text
244 #: build/C/man3/getutent.3:153
245 msgid "/var/log/wtmp\tdatabase of past user logins"
246 msgstr ""
247
248 #. type: SH
249 #: build/C/man3/getutent.3:153 build/C/man3/getutmp.3:53 build/C/man3/login.3:105 build/C/man3/updwtmp.3:52 build/C/man5/utmp.5:227
250 #, no-wrap
251 msgid "CONFORMING TO"
252 msgstr ""
253
254 #. type: Plain text
255 #: build/C/man3/getutent.3:155
256 msgid "XPG2, SVr4."
257 msgstr ""
258
259 #. type: Plain text
260 #: build/C/man3/getutent.3:165
261 msgid ""
262 "In XPG2 and SVID 2 the function B<pututline>()  is documented to return "
263 "void, and that is what it does on many systems (AIX, HP-UX, Linux libc5).  "
264 "HP-UX introduces a new function B<_pututline>()  with the prototype given "
265 "above for B<pututline>()  (also found in Linux libc5)."
266 msgstr ""
267
268 #. type: Plain text
269 #: build/C/man3/getutent.3:169
270 msgid ""
271 "All these functions are obsolete now on non-Linux systems.  POSIX.1-2001, "
272 "following SUSv1, does not have any of these functions, but instead uses"
273 msgstr ""
274
275 #. type: Plain text
276 #: build/C/man3/getutent.3:171
277 msgid "B<#include E<lt>utmpx.hE<gt>>"
278 msgstr ""
279
280 #. type: Plain text
281 #: build/C/man3/getutent.3:173
282 msgid "B<struct utmpx *getutxent(void);>"
283 msgstr ""
284
285 #. type: Plain text
286 #: build/C/man3/getutent.3:175
287 msgid "B<struct utmpx *getutxid(const struct utmpx *);>"
288 msgstr ""
289
290 #. type: Plain text
291 #: build/C/man3/getutent.3:177
292 msgid "B<struct utmpx *getutxline(const struct utmpx *);>"
293 msgstr ""
294
295 #. type: Plain text
296 #: build/C/man3/getutent.3:179
297 msgid "B<struct utmpx *pututxline(const struct utmpx *);>"
298 msgstr ""
299
300 #. type: Plain text
301 #: build/C/man3/getutent.3:181
302 msgid "B<void setutxent(void);>"
303 msgstr ""
304
305 #. type: Plain text
306 #: build/C/man3/getutent.3:183
307 msgid "B<void endutxent(void);>"
308 msgstr ""
309
310 #. type: Plain text
311 #: build/C/man3/getutent.3:192
312 msgid ""
313 "These functions are provided by glibc, and perform the same task as their "
314 "equivalents without the \"x\", but use I<struct utmpx>, defined on Linux to "
315 "be the same as I<struct utmp>.  For completeness, glibc also provides "
316 "B<utmpxname>(), although this function is not specified by POSIX.1."
317 msgstr ""
318
319 #. type: Plain text
320 #: build/C/man3/getutent.3:200
321 msgid ""
322 "On some other systems, the I<utmpx> structure is a superset of the I<utmp> "
323 "structure, with additional fields, and larger versions of the existing "
324 "fields, and parallel files are maintained, often I</var/*/utmpx> and "
325 "I</var/*/wtmpx>."
326 msgstr ""
327
328 #. type: Plain text
329 #: build/C/man3/getutent.3:205
330 msgid ""
331 "Linux glibc on the other hand does not use a parallel I<utmpx> file since "
332 "its I<utmp> structure is already large enough.  The functions B<getutxent>()  "
333 "etc. are aliases for B<getutent>() etc."
334 msgstr ""
335
336 #. type: SH
337 #: build/C/man3/getutent.3:205 build/C/man3/getutmp.3:56 build/C/man3/login.3:108 build/C/man3/updwtmp.3:65 build/C/man5/utmp.5:279
338 #, no-wrap
339 msgid "NOTES"
340 msgstr ""
341
342 #. type: SS
343 #: build/C/man3/getutent.3:206
344 #, no-wrap
345 msgid "Glibc Notes"
346 msgstr ""
347
348 #. type: Plain text
349 #: build/C/man3/getutent.3:209
350 msgid "The above functions are not thread-safe.  Glibc adds reentrant versions"
351 msgstr ""
352
353 #. type: Plain text
354 #: build/C/man3/getutent.3:214
355 #, no-wrap
356 msgid ""
357 "B<#define _GNU_SOURCE>    /* or _SVID_SOURCE or _BSD_SOURCE;\n"
358 "\\&                          see B<feature_test_macros(7)> */\n"
359 "B<#include E<lt>utmp.hE<gt>>\n"
360 msgstr ""
361
362 #. type: Plain text
363 #: build/C/man3/getutent.3:216
364 #, no-wrap
365 msgid "B<int getutent_r(struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"
366 msgstr ""
367
368 #. type: Plain text
369 #: build/C/man3/getutent.3:219
370 #, no-wrap
371 msgid ""
372 "B<int getutid_r(struct utmp *>I<ut>B<,>\n"
373 "B<              struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"
374 msgstr ""
375
376 #. type: Plain text
377 #: build/C/man3/getutent.3:222
378 #, no-wrap
379 msgid ""
380 "B<int getutline_r(struct utmp *>I<ut>B<,>\n"
381 "B<                struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"
382 msgstr ""
383
384 #. type: Plain text
385 #: build/C/man3/getutent.3:234
386 msgid ""
387 "These functions are GNU extensions, analogs of the functions of the same "
388 "name without the _r suffix.  The I<ubuf> argument gives these functions a "
389 "place to store their result.  On success they return 0, and a pointer to the "
390 "result is written in I<*ubufp>.  On error these functions return -1.  There "
391 "are no utmpx equivalents of the above functions.  (POSIX.1 does not specify "
392 "such functions.)"
393 msgstr ""
394
395 #. type: SH
396 #: build/C/man3/getutent.3:234
397 #, no-wrap
398 msgid "EXAMPLE"
399 msgstr ""
400
401 #. type: Plain text
402 #: build/C/man3/getutent.3:242
403 msgid ""
404 "The following example adds and removes a utmp record, assuming it is run "
405 "from within a pseudo terminal.  For usage in a real application, you should "
406 "check the return values of B<getpwuid>(3)  and B<ttyname>(3)."
407 msgstr ""
408
409 #. type: Plain text
410 #: build/C/man3/getutent.3:249
411 #, no-wrap
412 msgid ""
413 "#include E<lt>string.hE<gt>\n"
414 "#include E<lt>stdlib.hE<gt>\n"
415 "#include E<lt>pwd.hE<gt>\n"
416 "#include E<lt>unistd.hE<gt>\n"
417 "#include E<lt>utmp.hE<gt>\n"
418 msgstr ""
419
420 #. type: Plain text
421 #: build/C/man3/getutent.3:254
422 #, no-wrap
423 msgid ""
424 "int\n"
425 "main(int argc, char *argv[])\n"
426 "{\n"
427 "    struct utmp entry;\n"
428 msgstr ""
429
430 #. type: Plain text
431 #: build/C/man3/getutent.3:256
432 #, no-wrap
433 msgid "    system(\"echo before adding entry:;who\");\n"
434 msgstr ""
435
436 #. type: Plain text
437 #: build/C/man3/getutent.3:268
438 #, no-wrap
439 msgid ""
440 "    entry.ut_type = USER_PROCESS;\n"
441 "    entry.ut_pid = getpid();\n"
442 "    strcpy(entry.ut_line, ttyname(STDIN_FILENO) + strlen(\"/dev/\"));\n"
443 "    /* only correct for ptys named /dev/tty[pqr][0-9a-z] */\n"
444 "    strcpy(entry.ut_id, ttyname(STDIN_FILENO) + strlen(\"/dev/tty\"));\n"
445 "    time(&entry.ut_time);\n"
446 "    strcpy(entry.ut_user, getpwuid(getuid())-E<gt>pw_name);\n"
447 "    memset(entry.ut_host, 0, UT_HOSTSIZE);\n"
448 "    entry.ut_addr = 0;\n"
449 "    setutent();\n"
450 "    pututline(&entry);\n"
451 msgstr ""
452
453 #. type: Plain text
454 #: build/C/man3/getutent.3:270
455 #, no-wrap
456 msgid "    system(\"echo after adding entry:;who\");\n"
457 msgstr ""
458
459 #. type: Plain text
460 #: build/C/man3/getutent.3:277
461 #, no-wrap
462 msgid ""
463 "    entry.ut_type = DEAD_PROCESS;\n"
464 "    memset(entry.ut_line, 0, UT_LINESIZE);\n"
465 "    entry.ut_time = 0;\n"
466 "    memset(entry.ut_user, 0, UT_NAMESIZE);\n"
467 "    setutent();\n"
468 "    pututline(&entry);\n"
469 msgstr ""
470
471 #. type: Plain text
472 #: build/C/man3/getutent.3:279
473 #, no-wrap
474 msgid "    system(\"echo after removing entry:;who\");\n"
475 msgstr ""
476
477 #. type: Plain text
478 #: build/C/man3/getutent.3:283
479 #, no-wrap
480 msgid ""
481 "    endutent();\n"
482 "    exit(EXIT_SUCCESS);\n"
483 "}\n"
484 msgstr ""
485
486 #. type: SH
487 #: build/C/man3/getutent.3:284 build/C/man3/getutmp.3:67 build/C/man3/login.3:123 build/C/man3/updwtmp.3:81 build/C/man5/utmp.5:337
488 #, no-wrap
489 msgid "SEE ALSO"
490 msgstr ""
491
492 #. type: Plain text
493 #: build/C/man3/getutent.3:286
494 msgid "B<getutmp>(3), B<utmp>(5)"
495 msgstr ""
496
497 #. type: TH
498 #: build/C/man3/getutmp.3:24
499 #, no-wrap
500 msgid "GETUTMP"
501 msgstr ""
502
503 #. type: TH
504 #: build/C/man3/getutmp.3:24
505 #, no-wrap
506 msgid "2010-09-10"
507 msgstr ""
508
509 #. type: TH
510 #: build/C/man3/getutmp.3:24 build/C/man5/utmp.5:29
511 #, no-wrap
512 msgid "Linux"
513 msgstr ""
514
515 #. type: Plain text
516 #: build/C/man3/getutmp.3:27
517 msgid "getutmp, getutmpx - copy utmp structure to utmpx, and vice versa"
518 msgstr ""
519
520 #. type: Plain text
521 #: build/C/man3/getutmp.3:31
522 #, no-wrap
523 msgid ""
524 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
525 "B<#include E<lt>utmpx.hE<gt>>\n"
526 msgstr ""
527
528 #. type: Plain text
529 #: build/C/man3/getutmp.3:34
530 #, no-wrap
531 msgid ""
532 "B< void getutmp(const struct utmpx *>I<ux>B<, struct utmp *>I<u>B<);>\n"
533 "B< void getutmpx(const struct utmp *>I<u>B<, struct utmpx *>I<ux>B<);>\n"
534 msgstr ""
535
536 #. type: Plain text
537 #: build/C/man3/getutmp.3:49
538 msgid ""
539 "The B<getutmp>()  function copies the fields of the I<utmpx> structure "
540 "pointed to by I<ux> to the corresponding fields of the I<utmp> structure "
541 "pointed to by I<u>.  The B<getutmpx>()  function performs the converse "
542 "operation."
543 msgstr ""
544
545 #. type: Plain text
546 #: build/C/man3/getutmp.3:51
547 msgid "These functions do not return a value."
548 msgstr ""
549
550 #. type: SH
551 #: build/C/man3/getutmp.3:51
552 #, no-wrap
553 msgid "VERSIONS"
554 msgstr ""
555
556 #. type: Plain text
557 #: build/C/man3/getutmp.3:53
558 msgid "These functions first appeared in glibc in version 2.1.1."
559 msgstr ""
560
561 #. type: Plain text
562 #: build/C/man3/getutmp.3:56
563 msgid ""
564 "These functions are nonstandard, but appear on a few other systems, such as "
565 "Solaris and NetBSD."
566 msgstr ""
567
568 #.  e.g., on Solaris, the utmpx structure is rather larger than utmp.
569 #. type: Plain text
570 #: build/C/man3/getutmp.3:67
571 msgid ""
572 "These functions exist primarily for compatibility with other systems where "
573 "the I<utmp> and I<utmpx> structures contain different fields, or the size of "
574 "corresponding fields differs.  On Linux, the two structures contain the same "
575 "fields, and the fields have the same sizes."
576 msgstr ""
577
578 #. type: Plain text
579 #: build/C/man3/getutmp.3:69 build/C/man3/login.3:125
580 msgid "B<getutent>(3), B<utmp>(5)"
581 msgstr ""
582
583 #. type: TH
584 #: build/C/man3/login.3:24
585 #, no-wrap
586 msgid "LOGIN"
587 msgstr ""
588
589 #. type: TH
590 #: build/C/man3/login.3:24
591 #, no-wrap
592 msgid "2004-05-06"
593 msgstr ""
594
595 #. type: TH
596 #: build/C/man3/login.3:24 build/C/man3/updwtmp.3:23
597 #, no-wrap
598 msgid "GNU"
599 msgstr ""
600
601 #. type: Plain text
602 #: build/C/man3/login.3:27
603 msgid "login, logout - write utmp and wtmp entries"
604 msgstr ""
605
606 #. type: Plain text
607 #: build/C/man3/login.3:31
608 msgid "B<void login(const struct utmp *>I<ut>B<);>"
609 msgstr ""
610
611 #. type: Plain text
612 #: build/C/man3/login.3:33
613 msgid "B<int logout(const char *>I<ut_line>B<);>"
614 msgstr ""
615
616 #. type: Plain text
617 #: build/C/man3/login.3:35
618 msgid "Link with I<-lutil>."
619 msgstr ""
620
621 #. type: Plain text
622 #: build/C/man3/login.3:40
623 msgid ""
624 "The utmp file records who is currently using the system.  The wtmp file "
625 "records all logins and logouts.  See B<utmp>(5)."
626 msgstr ""
627
628 #. type: Plain text
629 #: build/C/man3/login.3:46
630 msgid ""
631 "The function B<login>()  takes the supplied I<struct utmp>, I<ut>, and "
632 "writes it to both the utmp and the wtmp file."
633 msgstr ""
634
635 #. type: Plain text
636 #: build/C/man3/login.3:50
637 msgid "The function B<logout>()  clears the entry in the utmp file again."
638 msgstr ""
639
640 #. type: SS
641 #: build/C/man3/login.3:50
642 #, no-wrap
643 msgid "GNU Details"
644 msgstr ""
645
646 #. type: Plain text
647 #: build/C/man3/login.3:71
648 msgid ""
649 "More precisely, B<login>()  takes the argument I<ut> struct, fills the field "
650 "I<ut-E<gt>ut_type> (if there is such a field) with the value "
651 "B<USER_PROCESS>, and fills the field I<ut-E<gt>ut_pid> (if there is such a "
652 "field) with the process ID of the calling process.  Then it tries to fill "
653 "the field I<ut-E<gt>ut_line>.  It takes the first of I<stdin>, I<stdout>, "
654 "I<stderr> that is a tty, and stores the corresponding pathname minus a "
655 "possible leading I</dev/> into this field, and then writes the struct to the "
656 "utmp file.  On the other hand, if no tty name was found, this field is "
657 "filled with \"???\" and the struct is not written to the utmp file.  After "
658 "this, the struct is written to the wtmp file."
659 msgstr ""
660
661 #. type: Plain text
662 #: build/C/man3/login.3:87
663 msgid ""
664 "The B<logout>()  function searches the utmp file for an entry matching the "
665 "I<ut_line> argument.  If a record is found, it is updated by zeroing out the "
666 "I<ut_name> and I<ut_host> fields, updating the I<ut_tv> timestamp field and "
667 "setting I<ut_type> (if there is such a field) to B<DEAD_PROCESS>."
668 msgstr ""
669
670 #. type: Plain text
671 #: build/C/man3/login.3:92
672 msgid ""
673 "The B<logout>()  function returns 1 if the entry was successfully written to "
674 "the database, or 0 if an error occurred."
675 msgstr ""
676
677 #. type: TP
678 #: build/C/man3/login.3:93
679 #, no-wrap
680 msgid "I</var/run/utmp>"
681 msgstr ""
682
683 #. type: Plain text
684 #: build/C/man3/login.3:99
685 msgid ""
686 "user accounting database, configured through B<_PATH_UTMP> in "
687 "I<E<lt>paths.hE<gt>>"
688 msgstr ""
689
690 #. type: TP
691 #: build/C/man3/login.3:99 build/C/man3/updwtmp.3:49
692 #, no-wrap
693 msgid "I</var/log/wtmp>"
694 msgstr ""
695
696 #. type: Plain text
697 #: build/C/man3/login.3:105
698 msgid ""
699 "user accounting log file, configured through B<_PATH_WTMP> in "
700 "I<E<lt>paths.hE<gt>>"
701 msgstr ""
702
703 #. type: Plain text
704 #: build/C/man3/login.3:108
705 msgid "Not in POSIX.1-2001.  Present on the BSDs."
706 msgstr ""
707
708 #. type: Plain text
709 #: build/C/man3/login.3:123
710 msgid ""
711 "Note that the member I<ut_user> of I<struct utmp> is called I<ut_name> in "
712 "BSD.  Therefore, I<ut_name> is defined as an alias for I<ut_user> in "
713 "I<E<lt>utmp.hE<gt>>."
714 msgstr ""
715
716 #. type: TH
717 #: build/C/man3/updwtmp.3:23
718 #, no-wrap
719 msgid "UPDWTMP"
720 msgstr ""
721
722 #. type: TH
723 #: build/C/man3/updwtmp.3:23
724 #, no-wrap
725 msgid "2008-07-02"
726 msgstr ""
727
728 #. type: Plain text
729 #: build/C/man3/updwtmp.3:26
730 msgid "updwtmp, logwtmp - append an entry to the wtmp file"
731 msgstr ""
732
733 #. type: Plain text
734 #: build/C/man3/updwtmp.3:29
735 #, no-wrap
736 msgid "B<#include E<lt>utmp.hE<gt>>\n"
737 msgstr ""
738
739 #. type: Plain text
740 #: build/C/man3/updwtmp.3:31
741 #, no-wrap
742 msgid "B<void updwtmp(const char *>I<wtmp_file>B<, const struct utmp *>I<ut>B<);>\n"
743 msgstr ""
744
745 #. type: Plain text
746 #: build/C/man3/updwtmp.3:34
747 #, no-wrap
748 msgid ""
749 "B<void logwtmp(const char *>I<line>B<, const char *>I<name>B<, const char "
750 "*>I<host>B<);>\n"
751 msgstr ""
752
753 #. type: Plain text
754 #: build/C/man3/updwtmp.3:40
755 msgid "B<updwtmp>()  appends the utmp structure I<ut> to the wtmp file."
756 msgstr ""
757
758 #. type: Plain text
759 #: build/C/man3/updwtmp.3:48
760 msgid ""
761 "B<logwtmp>()  constructs a utmp structure using I<line>, I<name>, I<host>, "
762 "current time and current process ID.  Then it calls B<updwtmp>()  to append "
763 "the structure to the wtmp file."
764 msgstr ""
765
766 #. type: Plain text
767 #: build/C/man3/updwtmp.3:52
768 msgid "database of past user logins"
769 msgstr ""
770
771 #. type: Plain text
772 #: build/C/man3/updwtmp.3:55
773 msgid "Not in POSIX.1-2001.  Present on Solaris, NetBSD, and perhaps other systems."
774 msgstr ""
775
776 #. type: SH
777 #: build/C/man3/updwtmp.3:55
778 #, no-wrap
779 msgid "AVAILABILITY"
780 msgstr ""
781
782 #. type: Plain text
783 #: build/C/man3/updwtmp.3:65
784 msgid ""
785 "Both functions are available under glibc2, but not under libc5.  However, "
786 "B<logwtmp>()  used to occur in the old libbsd.  These days, the B<logwtmp>()  "
787 "function is included in libutil.  (Hence you'll need to add I<-lutil> to "
788 "your compiler command line to get it.)"
789 msgstr ""
790
791 #. type: Plain text
792 #: build/C/man3/updwtmp.3:69
793 msgid ""
794 "For consistency with the other \"utmpx\" functions (see B<getutxent>(3)), "
795 "glibc provides (since version 2.1):"
796 msgstr ""
797
798 #. type: Plain text
799 #: build/C/man3/updwtmp.3:72
800 #, no-wrap
801 msgid "B<#include E<lt>utmpx.hE<gt>>\n"
802 msgstr ""
803
804 #. type: Plain text
805 #: build/C/man3/updwtmp.3:74
806 #, no-wrap
807 msgid ""
808 "B<void updwtmpx (const char *>I<wtmpx_file>B<, const struct utmpx "
809 "*>I<utx>B<);>\n"
810 msgstr ""
811
812 #. type: Plain text
813 #: build/C/man3/updwtmp.3:81
814 msgid ""
815 "This function performs the same task as B<updwtmp>(), but differs in that it "
816 "takes a I<utmpx> structure as its last argument."
817 msgstr ""
818
819 #. type: Plain text
820 #: build/C/man3/updwtmp.3:83
821 msgid "B<getutxent>(3), B<wtmp>(5)"
822 msgstr ""
823
824 #. type: TH
825 #: build/C/man5/utmp.5:29
826 #, no-wrap
827 msgid "UTMP"
828 msgstr ""
829
830 #. type: TH
831 #: build/C/man5/utmp.5:29
832 #, no-wrap
833 msgid "2011-09-28"
834 msgstr ""
835
836 #. type: Plain text
837 #: build/C/man5/utmp.5:32
838 msgid "utmp, wtmp - login records"
839 msgstr ""
840
841 #. type: Plain text
842 #: build/C/man5/utmp.5:41
843 msgid ""
844 "The I<utmp> file allows one to discover information about who is currently "
845 "using the system.  There may be more users currently using the system, "
846 "because not all programs use utmp logging."
847 msgstr ""
848
849 #. type: Plain text
850 #: build/C/man5/utmp.5:51
851 msgid ""
852 "B<Warning:> I<utmp> must not be writable by the user class \"other\", "
853 "because many system programs (foolishly)  depend on its integrity.  You risk "
854 "faked system logfiles and modifications of system files if you leave I<utmp> "
855 "writable to any user other than the owner and group owner of the file."
856 msgstr ""
857
858 #. type: Plain text
859 #: build/C/man5/utmp.5:59
860 msgid ""
861 "The file is a sequence of I<utmp> structures, declared as follows in "
862 "I<E<lt>utmp.hE<gt>> (note that this is only one of several definitions "
863 "around; details depend on the version of libc):"
864 msgstr ""
865
866 #. type: Plain text
867 #: build/C/man5/utmp.5:63
868 #, no-wrap
869 msgid "/* Values for ut_type field, below */\n"
870 msgstr ""
871
872 #. type: Plain text
873 #: build/C/man5/utmp.5:78
874 #, no-wrap
875 msgid ""
876 "#define EMPTY         0 /* Record does not contain valid info\n"
877 "                           (formerly known as UT_UNKNOWN on Linux) */\n"
878 "#define RUN_LVL       1 /* Change in system run-level (see\n"
879 "                           B<init>(8)) */\n"
880 "#define BOOT_TIME     2 /* Time of system boot (in I<ut_tv>) */\n"
881 "#define NEW_TIME      3 /* Time after system clock change\n"
882 "                           (in I<ut_tv>) */\n"
883 "#define OLD_TIME      4 /* Time before system clock change\n"
884 "                           (in I<ut_tv>) */\n"
885 "#define INIT_PROCESS  5 /* Process spawned by B<init>(8) */\n"
886 "#define LOGIN_PROCESS 6 /* Session leader process for user login */\n"
887 "#define USER_PROCESS  7 /* Normal process */\n"
888 "#define DEAD_PROCESS  8 /* Terminated process */\n"
889 "#define ACCOUNTING    9 /* Not implemented */\n"
890 msgstr ""
891
892 #. type: Plain text
893 #: build/C/man5/utmp.5:82
894 #, no-wrap
895 msgid ""
896 "#define UT_LINESIZE      32\n"
897 "#define UT_NAMESIZE      32\n"
898 "#define UT_HOSTSIZE     256\n"
899 msgstr ""
900
901 #. type: Plain text
902 #: build/C/man5/utmp.5:87
903 #, no-wrap
904 msgid ""
905 "struct exit_status {              /* Type for ut_exit, below */\n"
906 "    short int e_termination;      /* Process termination status */\n"
907 "    short int e_exit;             /* Process exit status */\n"
908 "};\n"
909 msgstr ""
910
911 #. type: Plain text
912 #: build/C/man5/utmp.5:115
913 #, no-wrap
914 msgid ""
915 "struct utmp {\n"
916 "    short   ut_type;              /* Type of record */\n"
917 "    pid_t   ut_pid;               /* PID of login process */\n"
918 "    char    ut_line[UT_LINESIZE]; /* Device name of tty - \"/dev/\" */\n"
919 "    char    ut_id[4];             /* Terminal name suffix,\n"
920 "                                     or inittab(5) ID */\n"
921 "    char    ut_user[UT_NAMESIZE]; /* Username */\n"
922 "    char    ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or\n"
923 "                                     kernel version for run-level\n"
924 "                                     messages */\n"
925 "    struct  exit_status ut_exit;  /* Exit status of a process\n"
926 "                                     marked as DEAD_PROCESS; not\n"
927 "                                     used by Linux init(8) */\n"
928 "    /* The ut_session and ut_tv fields must be the same size when\n"
929 "       compiled 32- and 64-bit.  This allows data files and shared\n"
930 "       memory to be shared between 32- and 64-bit applications. */\n"
931 "#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32\n"
932 "    int32_t ut_session;           /* Session ID (B<getsid>(2)),\n"
933 "                                     used for windowing */\n"
934 "    struct {\n"
935 "        int32_t tv_sec;           /* Seconds */\n"
936 "        int32_t tv_usec;          /* Microseconds */\n"
937 "    } ut_tv;                      /* Time entry was made */\n"
938 "#else\n"
939 "     long   ut_session;           /* Session ID */\n"
940 "     struct timeval ut_tv;        /* Time entry was made */\n"
941 "#endif\n"
942 msgstr ""
943
944 #. type: Plain text
945 #: build/C/man5/utmp.5:121
946 #, no-wrap
947 msgid ""
948 "    int32_t ut_addr_v6[4];        /* Internet address of remote\n"
949 "                                     host; IPv4 address uses\n"
950 "                                     just ut_addr_v6[0] */\n"
951 "    char __unused[20];            /* Reserved for future use */\n"
952 "};\n"
953 msgstr ""
954
955 #. type: Plain text
956 #: build/C/man5/utmp.5:129
957 #, no-wrap
958 msgid ""
959 "/* Backward compatibility hacks */\n"
960 "#define ut_name ut_user\n"
961 "#ifndef _NO_UT_TIME\n"
962 "#define ut_time ut_tv.tv_sec\n"
963 "#endif\n"
964 "#define ut_xtime ut_tv.tv_sec\n"
965 "#define ut_addr ut_addr_v6[0]\n"
966 msgstr ""
967
968 #. type: Plain text
969 #: build/C/man5/utmp.5:139
970 msgid ""
971 "This structure gives the name of the special file associated with the user's "
972 "terminal, the user's login name, and the time of login in the form of "
973 "B<time>(2).  String fields are terminated by a null byte (\\(aq\\e0\\(aq)  "
974 "if they are shorter than the size of the field."
975 msgstr ""
976
977 #. type: Plain text
978 #: build/C/man5/utmp.5:156
979 msgid ""
980 "The first entries ever created result from B<init>(8)  processing "
981 "B<inittab>(5).  Before an entry is processed, though, B<init>(8)  cleans up "
982 "utmp by setting I<ut_type> to B<DEAD_PROCESS>, clearing I<ut_user>, "
983 "I<ut_host>, and I<ut_time> with null bytes for each record which I<ut_type> "
984 "is not B<DEAD_PROCESS> or B<RUN_LVL> and where no process with PID I<ut_pid> "
985 "exists.  If no empty record with the needed I<ut_id> can be found, "
986 "B<init>(8)  creates a new one.  It sets I<ut_id> from the inittab, I<ut_pid> "
987 "and I<ut_time> to the current values, and I<ut_type> to B<INIT_PROCESS>."
988 msgstr ""
989
990 #. type: Plain text
991 #: build/C/man5/utmp.5:175
992 msgid ""
993 "B<mingetty>(8)  (or B<agetty>(8))  locates the entry by the PID, changes "
994 "I<ut_type> to B<LOGIN_PROCESS>, changes I<ut_time>, sets I<ut_line>, and "
995 "waits for connection to be established.  B<login>(1), after a user has been "
996 "authenticated, changes I<ut_type> to B<USER_PROCESS>, changes I<ut_time>, "
997 "and sets I<ut_host> and I<ut_addr>.  Depending on B<mingetty>(8)  (or "
998 "B<agetty>(8))  and B<login>(1), records may be located by I<ut_line> instead "
999 "of the preferable I<ut_pid>."
1000 msgstr ""
1001
1002 #. type: Plain text
1003 #: build/C/man5/utmp.5:181
1004 msgid ""
1005 "When B<init>(8)  finds that a process has exited, it locates its utmp entry "
1006 "by I<ut_pid>, sets I<ut_type> to B<DEAD_PROCESS>, and clears I<ut_user>, "
1007 "I<ut_host> and I<ut_time> with null bytes."
1008 msgstr ""
1009
1010 #. type: Plain text
1011 #: build/C/man5/utmp.5:193
1012 msgid ""
1013 "B<xterm>(1)  and other terminal emulators directly create a B<USER_PROCESS> "
1014 "record and generate the I<ut_id> by using the string that suffix part of the "
1015 "terminal name (the characters following I</dev/[pt]ty>).  If they find a "
1016 "B<DEAD_PROCESS> for this ID, they recycle it, otherwise they create a new "
1017 "entry.  If they can, they will mark it as B<DEAD_PROCESS> on exiting and it "
1018 "is advised that they null I<ut_line>, I<ut_time>, I<ut_user>, and I<ut_host> "
1019 "as well."
1020 msgstr ""
1021
1022 #. type: Plain text
1023 #: build/C/man5/utmp.5:201
1024 msgid ""
1025 "B<telnetd>(8)  sets up a B<LOGIN_PROCESS> entry and leaves the rest to "
1026 "B<login>(1)  as usual.  After the telnet session ends, B<telnetd>(8)  cleans "
1027 "up utmp in the described way."
1028 msgstr ""
1029
1030 #. type: Plain text
1031 #: build/C/man5/utmp.5:223
1032 msgid ""
1033 "The I<wtmp> file records all logins and logouts.  Its format is exactly like "
1034 "I<utmp> except that a null username indicates a logout on the associated "
1035 "terminal.  Furthermore, the terminal name B<~> with username B<shutdown> or "
1036 "B<reboot> indicates a system shutdown or reboot and the pair of terminal "
1037 "names B<|>/B<}> logs the old/new system time when B<date>(1)  changes it.  "
1038 "I<wtmp> is maintained by B<login>(1), B<init>(8), and some versions of "
1039 "B<getty>(8)  (e.g., B<mingetty>(8)  or B<agetty>(8)).  None of these "
1040 "programs creates the file, so if it is removed, record-keeping is turned "
1041 "off."
1042 msgstr ""
1043
1044 #. type: Plain text
1045 #: build/C/man5/utmp.5:225
1046 msgid "/var/run/utmp"
1047 msgstr ""
1048
1049 #. type: Plain text
1050 #: build/C/man5/utmp.5:227
1051 msgid "/var/log/wtmp"
1052 msgstr ""
1053
1054 #. type: Plain text
1055 #: build/C/man5/utmp.5:246
1056 msgid ""
1057 "POSIX.1 does not specify a I<utmp> structure, but rather one named I<utmpx>, "
1058 "with specifications for the fields I<ut_type>, I<ut_pid>, I<ut_line>, "
1059 "I<ut_id>, I<ut_user>, and I<ut_tv>.  POSIX.1 does not specify the lengths of "
1060 "the I<ut_line> and I<ut_user> fields."
1061 msgstr ""
1062
1063 #. type: Plain text
1064 #: build/C/man5/utmp.5:252
1065 msgid ""
1066 "Linux defines the I<utmpx> structure to be the same as the I<utmp> "
1067 "structure."
1068 msgstr ""
1069
1070 #. type: SS
1071 #: build/C/man5/utmp.5:252
1072 #, no-wrap
1073 msgid "Comparison with Historical Systems"
1074 msgstr ""
1075
1076 #. type: Plain text
1077 #: build/C/man5/utmp.5:255
1078 msgid ""
1079 "Linux utmp entries conform neither to v7/BSD nor to System V; they are a mix "
1080 "of the two."
1081 msgstr ""
1082
1083 #. type: Plain text
1084 #: build/C/man5/utmp.5:262
1085 msgid ""
1086 "v7/BSD has fewer fields; most importantly it lacks I<ut_type>, which causes "
1087 "native v7/BSD-like programs to display (for example) dead or login entries.  "
1088 "Further, there is no configuration file which allocates slots to sessions.  "
1089 "BSD does so because it lacks I<ut_id> fields."
1090 msgstr ""
1091
1092 #. type: Plain text
1093 #: build/C/man5/utmp.5:274
1094 msgid ""
1095 "In Linux (as in System V), the I<ut_id> field of a record will never change "
1096 "once it has been set, which reserves that slot without needing a "
1097 "configuration file.  Clearing I<ut_id> may result in race conditions leading "
1098 "to corrupted utmp entries and potential security holes.  Clearing the "
1099 "abovementioned fields by filling them with null bytes is not required by "
1100 "System V semantics, but makes it possible to run many programs which assume "
1101 "BSD semantics and which do not modify utmp.  Linux uses the BSD conventions "
1102 "for line contents, as documented above."
1103 msgstr ""
1104
1105 #.  mtk: What is the referrent of "them" in the following sentence?
1106 #.  System V only uses the type field to mark them and logs
1107 #.  informative messages such as \fB"new time"\fP in the line field.
1108 #. type: Plain text
1109 #: build/C/man5/utmp.5:279
1110 msgid "System V has no I<ut_host> or I<ut_addr_v6> fields."
1111 msgstr ""
1112
1113 #. type: Plain text
1114 #: build/C/man5/utmp.5:287
1115 msgid ""
1116 "Unlike various other systems, where utmp logging can be disabled by removing "
1117 "the file, utmp must always exist on Linux.  If you want to disable B<who>(1)  "
1118 "then do not make utmp world readable."
1119 msgstr ""
1120
1121 #. type: Plain text
1122 #: build/C/man5/utmp.5:290
1123 msgid ""
1124 "The file format is machine-dependent, so it is recommended that it be "
1125 "processed only on the machine architecture where it was created."
1126 msgstr ""
1127
1128 #. type: Plain text
1129 #: build/C/man5/utmp.5:311
1130 msgid ""
1131 "Note that on I<biarch> platforms, that is, systems which can run both 32-bit "
1132 "and 64-bit applications (x86-64, ppc64, s390x, etc.), I<ut_tv> is the same "
1133 "size in 32-bit mode as in 64-bit mode.  The same goes for I<ut_session> and "
1134 "I<ut_time> if they are present.  This allows data files and shared memory to "
1135 "be shared between 32-bit and 64-bit applications.  This is achieved by "
1136 "changing the type of I<ut_session> to I<int32_t>, and that of I<ut_tv> to a "
1137 "struct with two I<int32_t> fields I<tv_sec> and I<tv_usec>.  Since I<ut_tv> "
1138 "may not be the same as I<struct timeval>, then instead of the call:"
1139 msgstr ""
1140
1141 #. type: Plain text
1142 #: build/C/man5/utmp.5:315
1143 #, no-wrap
1144 msgid "gettimeofday((struct timeval *) &ut.ut_tv, NULL);\n"
1145 msgstr ""
1146
1147 #. type: Plain text
1148 #: build/C/man5/utmp.5:319
1149 msgid "the following method of setting this field is recommended:"
1150 msgstr ""
1151
1152 #. type: Plain text
1153 #: build/C/man5/utmp.5:324
1154 #, no-wrap
1155 msgid ""
1156 "struct utmp ut;\n"
1157 "struct timeval tv;\n"
1158 msgstr ""
1159
1160 #. type: Plain text
1161 #: build/C/man5/utmp.5:328
1162 #, no-wrap
1163 msgid ""
1164 "gettimeofday(&tv, NULL);\n"
1165 "ut.ut_tv.tv_sec = tv.tv_sec;\n"
1166 "ut.ut_tv.tv_usec = tv.tv_usec;\n"
1167 msgstr ""
1168
1169 #. type: Plain text
1170 #: build/C/man5/utmp.5:335
1171 msgid ""
1172 "Note that the I<utmp> struct from libc5 has changed in libc6.  Because of "
1173 "this, binaries using the old libc5 struct will corrupt I</var/run/utmp> "
1174 "and/or I</var/log/wtmp>."
1175 msgstr ""
1176
1177 #. type: SH
1178 #: build/C/man5/utmp.5:335
1179 #, no-wrap
1180 msgid "BUGS"
1181 msgstr ""
1182
1183 #. type: Plain text
1184 #: build/C/man5/utmp.5:337
1185 msgid "This man page is based on the libc5 one, things may work differently now."
1186 msgstr ""
1187
1188 #. type: Plain text
1189 #: build/C/man5/utmp.5:349
1190 msgid ""
1191 "B<ac>(1), B<date>(1), B<last>(1), B<login>(1), B<who>(1), B<getutent>(3), "
1192 "B<getutmp>(3), B<login>(3), B<logout>(3), B<logwtmp>(3), B<updwtmp>(3), "
1193 "B<init>(8)"
1194 msgstr ""