108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH GETTTYENT 3
 | 
						|
.SH NAME
 | 
						|
getttyent, getttynam, setttyent, endttyent \- interface to /etc/ttytab
 | 
						|
.SH SYNOPSIS
 | 
						|
.ft B
 | 
						|
.nf
 | 
						|
#include <ttyent.h>
 | 
						|
 | 
						|
struct ttyent *getttyent(void)
 | 
						|
struct ttyent *getttynam(const char *\fIname\fP)
 | 
						|
int setttyent(void)
 | 
						|
void endttyent(void)
 | 
						|
.fi
 | 
						|
.ft P
 | 
						|
.SH DESCRIPTION
 | 
						|
The
 | 
						|
.B getttyent
 | 
						|
functions provide an interface to the /etc/ttytab.  (See
 | 
						|
.BR ttytab (5)).
 | 
						|
.PP
 | 
						|
To read one of these files one calls
 | 
						|
.B getttyent()
 | 
						|
several times to read the entries in the table until NULL is returned for
 | 
						|
end-of-file.
 | 
						|
.PP
 | 
						|
.B Getttyname()
 | 
						|
searches the
 | 
						|
.B ttytab
 | 
						|
file for the given terminal device.  It is equivalent to a call to
 | 
						|
.BR setttyent(),
 | 
						|
several calls to
 | 
						|
.B getttyent()
 | 
						|
to locate the entry, and a final
 | 
						|
.B endttyent()
 | 
						|
to close the file.
 | 
						|
.PP
 | 
						|
.B Setttyent()
 | 
						|
opens or rewinds the ttytab database, and
 | 
						|
.B endttyent() closes it.
 | 
						|
.B Getttyent()
 | 
						|
opens the database if not already open, but does not close it.
 | 
						|
.PP
 | 
						|
The struct ttyent is defined by <ttyent.h> as follows:
 | 
						|
.sp
 | 
						|
.nf
 | 
						|
.ta +4n +6n +15n
 | 
						|
struct ttyent {
 | 
						|
	char	*ty_name;	/* Name of the terminal device. */
 | 
						|
	char	*ty_type;	/* Terminal type name (termcap(3)). */
 | 
						|
	char	**ty_getty;	/* Program to run, normally getty. */
 | 
						|
	char	**ty_init;	/* Initialization command, normally stty. */
 | 
						|
};
 | 
						|
.fi
 | 
						|
.PP
 | 
						|
A valid entry has at least two strings, so both
 | 
						|
.B ty_name
 | 
						|
and
 | 
						|
.B ty_type
 | 
						|
are filled in.  The optional
 | 
						|
.B ty_getty
 | 
						|
and
 | 
						|
.B ty_init
 | 
						|
may be NULL (field omitted), point to a pointer that is NULL (null lenght
 | 
						|
field, i.e. ""), or an array of strings terminated by a NULL (field
 | 
						|
present).  For now no useful distinction can be made between a omitted field
 | 
						|
and an empty field, so treat both cases as an omission.
 | 
						|
.SH FILES
 | 
						|
.TP 15
 | 
						|
.B /etc/ttytab
 | 
						|
The terminal device database
 | 
						|
.SH "SEE ALSO"
 | 
						|
.BR ttyname (3),
 | 
						|
.BR ttyslot (3),
 | 
						|
.BR ttytab (5),
 | 
						|
.BR init (8).
 | 
						|
.SH DIAGNOSTICS
 | 
						|
.B Setttyent()
 | 
						|
has the same return value and error codes as the
 | 
						|
.BR open (2)
 | 
						|
call it uses to open the ttytab file.  The
 | 
						|
.BI get xxx ()
 | 
						|
functions return NULL on end of file, entry not found, or error.  You can
 | 
						|
set
 | 
						|
.B errno
 | 
						|
to zero before the call and check it after.
 | 
						|
.SH NOTES
 | 
						|
.B Getttyent()
 | 
						|
and
 | 
						|
.B getttynam()
 | 
						|
return a pointer to static storage that is overwritten in each call.
 | 
						|
.PP
 | 
						|
The MINIX 3
 | 
						|
.B struct ttyent
 | 
						|
has only the
 | 
						|
.B ty_name
 | 
						|
and
 | 
						|
.B ty_type
 | 
						|
fields in common with the BSD implementation.  This does not seem to be a
 | 
						|
problem, because most third party software that need to know about terminals
 | 
						|
only look at the
 | 
						|
.B ty_name
 | 
						|
field.
 | 
						|
.SH AUTHOR
 | 
						|
Kees J. Bot (kjb@cs.vu.nl)
 | 
						|
 | 
						|
.\"
 | 
						|
.\" $PchId: getttyent.3,v 1.2 1996/04/11 06:57:26 philip Exp $
 |