GETTTYENT(3) | Library Functions Manual | GETTTYENT(3)

# NAME

`getttyent`, `getttynam`, `setttyent`, `endttyent` — get ttys file entry

# SYNOPSIS

`#include <ttyent.h>`

struct ttyent *
`getttyent`(void);

struct ttyent *
`getttynam`(const char *name);

int
`setttyent`(void);

int
`endttyent`(void);

# DESCRIPTION

The `getttyent`() and `getttynam`() functions each return a pointer to an object, with the following structure, containing the broken-out fields of a line from the tty description file.

    struct ttyent {
    	char	*ty_name;	/* terminal device name */
    	char	*ty_getty;	/* command to execute */
    	char	*ty_type;	/* terminal type */
    #define	TTY_ON		0x01	/* enable logins */
    #define	TTY_SECURE	0x02	/* allow uid of 0 to login */
    #define	TTY_LOCAL	0x04	/* set 'CLOCAL' on open */
    #define	TTY_RTSCTS	0x08	/* set 'CRTSCTS' on open */
    #define	TTY_SOFTCAR	0x10	/* ignore hardware carrier */
    #define	TTY_MDMBUF	0x20	/* set 'MDMBUF' on open */
    	int	ty_status;	/* flag values */
    	char	*ty_window;	/* command for window manager */
    	char	*ty_comment;	/* comment field */
    };

The fields are as follows:

ty_name
  Name of the character-special file.
ty_getty
  Name of the command invoked by init(8) to initialize tty line characteristics.
ty_type
  Name of the default terminal type connected to this tty line.
ty_status
  A mask of bit fields which indicate various actions allowed on this tty line. The possible flags are as follows:
  `TTY_ON`
    Enables logins (i.e., init(8) will start the command referenced by ty_getty on this entry).
  `TTY_SECURE`
    Allow users with a UID of 0 to login on this terminal.
  `TTY_LOCAL`
    If the terminal port's driver supports it, cause the line to be treated as “local”.
  `TTY_MDMBUF`
    If the terminal port's driver supports it, use DTR/DCD hardware flow control on the line by default.
  `TTY_RTSCTS`
    If the terminal port's driver supports it, use full-duplex RTS/CTS hardware flow control on the line by default.
  `TTY_SOFTCAR`
    If the terminal port's driver supports it, ignore hardware carrier on the line.
ty_window
  Command to execute for a window system associated with the line.
ty_comment
  Any trailing comment field, with any leading hash marks (‘#’) or whitespace removed.

If any of the fields pointing to character strings are unspecified, they are returned as null pointers. The field ty_status will be zero if no flag values are specified.

See ttys(5) for a more complete discussion of the meaning and usage of the fields.

The `getttyent`() function reads the next line from the ttys file, opening the file if necessary. `setttyent`() rewinds the file if open, or opens the file if it is unopened. `endttyent`() closes any open files.

`getttynam`() searches from the beginning of the file until a matching name is found (or until `EOF` is encountered).

# RETURN VALUES

The routines `getttyent`() and `getttynam`() return a null pointer on `EOF` or error. The `setttyent`() function and `endttyent`() return 0 on failure or 1 on success.

# FILES

/etc/ttys

# SEE ALSO

login(1), ttyslot(3), gettytab(5), termcap(5), ttys(5), getty(8), init(8), ttyflags(8)

# HISTORY

The `getttyent`(), `getttynam`(), `setttyent`(), and `endttyent`() functions appeared in 4.3BSD.

# BUGS

These functions use static data storage; if the data is needed for future use, it should be copied before any subsequent calls overwrite it.

June 5, 2013 | Debian