annotate lib/readutmp.h @ 2226:1b6275c2d099

(UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
author Jim Meyering <jim@meyering.net>
date Sun, 30 Jan 2000 16:39:08 +0000
parents ae596af5aea1
children b3a94d16a532
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 /* Declarations for GNU's read utmp module.
2226
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
2 Copyright (C) 1992-2000 Free Software Foundation, Inc.
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
3
Jim Meyering <jim@meyering.net>
parents:
diff changeset
4 This program is free software; you can redistribute it and/or modify
Jim Meyering <jim@meyering.net>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 the Free Software Foundation; either version 2, or (at your option)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
7 any later version.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
8
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
Jim Meyering <jim@meyering.net>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 GNU General Public License for more details.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15 along with this program; if not, write to the Free Software Foundation,
Jim Meyering <jim@meyering.net>
parents:
diff changeset
16 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18 /* Written by jla; revised by djm */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19
Jim Meyering <jim@meyering.net>
parents:
diff changeset
20 #ifndef __READUTMP_H__
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21 # define __READUTMP_H__
Jim Meyering <jim@meyering.net>
parents:
diff changeset
22
1299
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
23 # ifndef PARAMS
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
24 # if defined PROTOTYPES || (defined __STDC__ && __STDC__)
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
25 # define PARAMS(Args) Args
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
26 # else
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
27 # define PARAMS(Args) ()
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
28 # endif
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
29 # endif
f8b90b628db6 (PARAMS): Define.
Jim Meyering <jim@meyering.net>
parents: 983
diff changeset
30
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
31 # include <sys/types.h>
Jim Meyering <jim@meyering.net>
parents:
diff changeset
32
2226
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
33 /* Accessor macro for the member named ut_user or ut_name. */
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
34 # if HAVE_STRUCT_UTMPX_UT_USER || HAVE_STRUCT_UTMP_UT_USER
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
35 # define UT_USER(Utmp) Utmp->ut_user
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
36 # endif
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
37 # if HAVE_STRUCT_UTMPX_UT_NAME || HAVE_STRUCT_UTMP_UT_NAME
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
38 # define UT_USER(Utmp) Utmp->ut_name
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
39 # endif
1b6275c2d099 (UT_USER): Define. Accessor macro for the member named ut_user or ut_name.
Jim Meyering <jim@meyering.net>
parents: 1829
diff changeset
40
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
41 # ifdef HAVE_UTMPX_H
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42 # include <utmpx.h>
983
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
43 # define UTMP_STRUCT_NAME utmpx
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
44 # define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_tv.tv_sec)
1829
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
45 # define SET_UTMP_ENT setutxent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
46 # define GET_UTMP_ENT getutxent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
47 # define END_UTMP_ENT endutxent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
48 # define UTMP_NAME_FUNCTION utmpxname
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49 # else
Jim Meyering <jim@meyering.net>
parents:
diff changeset
50 # include <utmp.h>
983
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
51 # define UTMP_STRUCT_NAME utmp
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 # define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_time)
1829
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
53 # define SET_UTMP_ENT setutent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
54 # define GET_UTMP_ENT getutent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
55 # define END_UTMP_ENT endutent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
56 # define UTMP_NAME_FUNCTION utmpname
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
57 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58
983
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
59 typedef struct UTMP_STRUCT_NAME STRUCT_UTMP;
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
60
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
61 # include <time.h>
Jim Meyering <jim@meyering.net>
parents:
diff changeset
62 # ifdef HAVE_SYS_PARAM_H
Jim Meyering <jim@meyering.net>
parents:
diff changeset
63 # include <sys/param.h>
Jim Meyering <jim@meyering.net>
parents:
diff changeset
64 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
65
Jim Meyering <jim@meyering.net>
parents:
diff changeset
66 # include <errno.h>
Jim Meyering <jim@meyering.net>
parents:
diff changeset
67 # ifndef errno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
68 extern int errno;
Jim Meyering <jim@meyering.net>
parents:
diff changeset
69 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
70
Jim Meyering <jim@meyering.net>
parents:
diff changeset
71 # if !defined (UTMP_FILE) && defined (_PATH_UTMP)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
72 # define UTMP_FILE _PATH_UTMP
Jim Meyering <jim@meyering.net>
parents:
diff changeset
73 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
74
Jim Meyering <jim@meyering.net>
parents:
diff changeset
75 # if !defined (WTMP_FILE) && defined (_PATH_WTMP)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
76 # define WTMP_FILE _PATH_WTMP
Jim Meyering <jim@meyering.net>
parents:
diff changeset
77 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
78
Jim Meyering <jim@meyering.net>
parents:
diff changeset
79 # ifdef UTMPX_FILE /* Solaris, SysVr4 */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
80 # undef UTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
81 # define UTMP_FILE UTMPX_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
82 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
83
Jim Meyering <jim@meyering.net>
parents:
diff changeset
84 # ifdef WTMPX_FILE /* Solaris, SysVr4 */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
85 # undef WTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
86 # define WTMP_FILE WTMPX_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
87 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
88
Jim Meyering <jim@meyering.net>
parents:
diff changeset
89 # ifndef UTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
90 # define UTMP_FILE "/etc/utmp"
Jim Meyering <jim@meyering.net>
parents:
diff changeset
91 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
92
Jim Meyering <jim@meyering.net>
parents:
diff changeset
93 # ifndef WTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
94 # define WTMP_FILE "/etc/wtmp"
Jim Meyering <jim@meyering.net>
parents:
diff changeset
95 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
96
Jim Meyering <jim@meyering.net>
parents:
diff changeset
97 # undef PARAMS
Jim Meyering <jim@meyering.net>
parents:
diff changeset
98 # if defined (__STDC__) && __STDC__
Jim Meyering <jim@meyering.net>
parents:
diff changeset
99 # define PARAMS(Args) Args
Jim Meyering <jim@meyering.net>
parents:
diff changeset
100 # else
Jim Meyering <jim@meyering.net>
parents:
diff changeset
101 # define PARAMS(Args) ()
Jim Meyering <jim@meyering.net>
parents:
diff changeset
102 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
103
983
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
104 extern char *extract_trimmed_name PARAMS ((const STRUCT_UTMP *ut));
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
105 extern int read_utmp PARAMS ((const char *filename,
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
106 int *n_entries, STRUCT_UTMP **utmp_buf));
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
107
Jim Meyering <jim@meyering.net>
parents:
diff changeset
108 #endif /* __READUTMP_H__ */