Each hardware terminal port on the system usually has two terminal special device files associated with it in the directory
/dev/ (for example,
/dev/tty03 and
/dev/dty03).
The
/dev/ttyXX special file is used for dial-in modems and terminals. When a user logs into the system on one of these hardware terminal ports, the system has already opened the associated device and prepared the line for normal interactive use (see
getty(8)).
The
/dev/dtyXX special file is a SunOS-compatible dial-out device. Unlike the dial-in device, opening the dial-out device never blocks. If the corresponding dial-in device is already opened (not blocked in the open waiting for carrier), then the dial-out open will fail immediately; otherwise it will succeed immediately. While the dial-out device is open, the dial-in device may not be opened. If the dial-in open is blocking, it will wait until the dial-out device is closed (and carrier is detected); otherwise it will fail immediately.
There is also a special case of a terminal file that connects not to a hardware terminal port, but to another program on the other side. These special terminal devices are called
ptys (pseudo terminals) and provide the mechanism necessary to give users the same interface to the system when logging in over a network (using
rlogin(1), or
telnet(1) for example.) Even in these cases the details of how the terminal file was opened and set up is already handled by special software in the system. Thus, users do not normally need to worry about the details of how these lines are opened or used. Also, these lines are often used for dialing out of a system (through an out-calling modem), but again the system provides programs that hide the details of accessing these terminal special files (see
tip(1)).
When an interactive user logs in, the system prepares the line to behave in a certain way (called a
line discipline), the particular details of which is described in
stty(1) at the command level, and in
termios(4) at the programming level. A user may be concerned with changing settings associated with his particular login terminal and should refer to the preceding man pages for the common cases. The remainder of this man page is concerned with describing details of using and controlling terminal devices at a low level, such as that possibly required by a program wishing to provide features similar to those provided by the system.