Merge branch 'vendor/EE'
[dragonfly.git] / lib / libc / gen / getttyent.3
1 .\" Copyright (c) 1989, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)getttyent.3 8.1 (Berkeley) 6/4/93
29 .\" $FreeBSD: src/lib/libc/gen/getttyent.3,v 1.15 2007/01/09 00:27:54 imp Exp $
30 .\" $DragonFly: src/lib/libc/gen/getttyent.3,v 1.2 2003/06/17 04:26:42 dillon Exp $
31 .\"
32 .Dd November 17, 1996
33 .Dt GETTTYENT 3
34 .Os
35 .Sh NAME
36 .Nm getttyent ,
37 .Nm getttynam ,
38 .Nm setttyent ,
39 .Nm endttyent ,
40 .Nm isdialuptty ,
41 .Nm isnettty
42 .Nd
43 .Xr ttys 5
44 file routines
45 .Sh LIBRARY
46 .Lb libc
47 .Sh SYNOPSIS
48 .In ttyent.h
49 .Ft struct ttyent *
50 .Fn getttyent void
51 .Ft struct ttyent *
52 .Fn getttynam "const char *name"
53 .Ft int
54 .Fn setttyent void
55 .Ft int
56 .Fn endttyent void
57 .Ft int
58 .Fn isdialuptty "const char *name"
59 .Ft int
60 .Fn isnettty "const char *name"
61 .Sh DESCRIPTION
62 The
63 .Fn getttyent ,
64 and
65 .Fn getttynam
66 functions
67 each return a pointer to an object, with the following structure,
68 containing the broken-out fields of a line from the tty description
69 file.
70 .Bd -literal
71 struct ttyent {
72         char    *ty_name;       /* terminal device name */
73         char    *ty_getty;      /* command to execute, usually getty */
74         char    *ty_type;       /* terminal type for termcap */
75 #define TTY_ON          0x01    /* enable logins (start ty_getty program) */
76 #define TTY_SECURE      0x02    /* allow uid of 0 to login */
77 #define TTY_DIALUP      0x04    /* is a dialup tty */
78 #define TTY_NETWORK     0x08    /* is a network tty */
79         int     ty_status;      /* status flags */
80         char    *ty_window;     /* command to start up window manager */
81         char    *ty_comment;    /* comment field */
82         char    *ty_group;      /* tty group name */
83 };
84 .Ed
85 .Pp
86 The fields are as follows:
87 .Bl -tag -width ty_comment
88 .It Fa ty_name
89 The name of the character-special file.
90 .It Fa ty_getty
91 The name of the command invoked by
92 .Xr init 8
93 to initialize tty line characteristics.
94 .It Fa ty_type
95 The name of the default terminal type connected to this tty line.
96 .It Fa ty_status
97 A mask of bit fields which indicate various actions allowed on this
98 tty line.
99 The possible flags are as follows:
100 .Bl -tag -width TTY_NETWORK
101 .It Dv TTY_ON
102 Enables logins (i.e.,
103 .Xr init 8
104 will start the command referenced by
105 .Fa ty_getty
106 on this entry).
107 .It Dv TTY_SECURE
108 Allow users with a uid of 0 to login on this terminal.
109 .It Dv TTY_DIALUP
110 Identifies a tty as a dialin line.
111 If this flag is set, then
112 .Fn isdialuptty
113 will return a non-zero value.
114 .It Dv TTY_NETWORK
115 Identifies a tty used for network connections.
116 If this flag is set, then
117 .Fn isnettty
118 will return a non-zero value.
119 .El
120 .It Fa ty_window
121 The command to execute for a window system associated with the line.
122 .It Fa ty_group
123 A group name to which the tty belongs.
124 If no group is specified in the ttys description file,
125 then the tty is placed in an anonymous group called "none".
126 .It Fa ty_comment
127 Any trailing comment field, with any leading hash marks (``#'') or
128 whitespace removed.
129 .El
130 .Pp
131 If any of the fields pointing to character strings are unspecified,
132 they are returned as null pointers.
133 The field
134 .Fa ty_status
135 will be zero if no flag values are specified.
136 .Pp
137 See
138 .Xr ttys 5
139 for a more complete discussion of the meaning and usage of the
140 fields.
141 .Pp
142 The
143 .Fn getttyent
144 function
145 reads the next line from the ttys file, opening the file if necessary.
146 The
147 .Fn setttyent
148 function
149 rewinds the file if open, or opens the file if it is unopened.
150 The
151 .Fn endttyent
152 function
153 closes any open files.
154 .Pp
155 The
156 .Fn getttynam
157 function
158 searches from the beginning of the file until a matching
159 .Fa name
160 is found
161 (or until
162 .Dv EOF
163 is encountered).
164 .Sh RETURN VALUES
165 The routines
166 .Fn getttyent
167 and
168 .Fn getttynam
169 return a null pointer on
170 .Dv EOF
171 or error.
172 The
173 .Fn setttyent
174 function
175 and
176 .Fn endttyent
177 return 0 on failure and 1 on success.
178 .Pp
179 The routines
180 .Fn isdialuptty
181 and
182 .Fn isnettty
183 return non-zero if the dialup or network flag is set for the
184 tty entry relating to the tty named by the argument, and
185 zero otherwise.
186 .Sh FILES
187 .Bl -tag -width /etc/ttys -compact
188 .It Pa /etc/ttys
189 .El
190 .Sh SEE ALSO
191 .Xr login 1 ,
192 .Xr ttyslot 3 ,
193 .Xr gettytab 5 ,
194 .Xr termcap 5 ,
195 .Xr ttys 5 ,
196 .Xr getty 8 ,
197 .Xr init 8
198 .Sh HISTORY
199 The
200 .Fn getttyent ,
201 .Fn getttynam ,
202 .Fn setttyent ,
203 and
204 .Fn endttyent
205 functions appeared in
206 .Bx 4.3 .
207 .Sh BUGS
208 These functions use static data storage;
209 if the data is needed for future use, it should be
210 copied before any subsequent calls overwrite it.