Sponsored Content
Top Forums Programming questions about pseudo termial Post 302550402 by Corona688 on Thursday 25th of August 2011 03:41:50 PM
Old 08-25-2011
Quote:
Originally Posted by tefino
I am studying APUE(advanced programming in the unix environment). I have read up to chapter19 pseudo terminal. I know that the pty is like a fake device for programs to direct STDIN and STDOUT to. But I don't know why we need it. Can someone tell me what is the use of pseudo terminal. Thanks.
Several reasons, but it comes down to the way terminals are used on a UNIX system.

Things run by cron or system services don't get a terminal, and this is a problem. What if your ssh keys are messed up, and it prints "type password:" into /dev/null and hangs forever? UNIX solved this problem by adding three features:
  • The 'controlling terminal'. The kernel remembers which terminal a program belongs to, if any. Any interactive session uses a terminal.
  • The special '/dev/tty' device, which opens your terminal again if you need it. Programs which really, really need to talk to a human and not whatever program's next in the pipe chain can open /dev/tty and print directly to their screen.
  • The isatty() system call, which lets a program tell whether stdin/stdout/stderr is a terminal or not.

So when you do command | ssh username@host othercommand ssh will see that you're logged in interactively, and open your terminal directly to ask you for a password.

Of course, these days, most terminals aren't real, physical terminals. So a virtual terminal device is used to get all the side-effects of a real terminal without actually being in a terminal.
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

redirect termial output

How can I redirect the terminal out put to another terminal. ie. ifI give ls command in 1st telenet window, output of ls command should go to 2nd telenet window. (2 Replies)
Discussion started by: sushrut
2 Replies

2. Programming

Pseudo Terminals

I need to spawn a number of foreground process by reading a configuration file. Each process needs some form of I/O. Hence I need to run it on different terminals. How it can be done programatically , i.e. , my module needs to find which terminal is not in use, then open it, execute the process... (2 Replies)
Discussion started by: S.P.Prasad
2 Replies

3. SCO

pseudo driver

explain differences between a device driver & a pseudo driver...???? thanks in advance (1 Reply)
Discussion started by: areef4u
1 Replies

4. Solaris

Monitering Other Termial

Dear Jems, Is it possible as a admin what commands are excuting in other terminal. Example:if the who cmd output is like these Can i watch online means at presently what commands are executing in the terminal "pts/7"/ (172.17.17.87) and result of the command. root console Oct 13... (3 Replies)
Discussion started by: salaathi
3 Replies

5. Solaris

pseudo: [ID 129642 kern.info] pseudo-device: vol0

Hi I have a system that gave me some messages on bootup that I was not used to seeing: pseudo: pseudo-device: vol0 genunix: vol0 is /pseudo/vol@0 these came with these: Feb 13 17:42:17 system1 eri: SUNW,eri0 : 100 Mbps full duplex link up Feb 13 17:42:21 system1sendmail: My unqualified... (0 Replies)
Discussion started by: mndavies
0 Replies

6. Solaris

what is /devices/pseudo/ ??

Hi all, what does this mean? if then <something> fi here is what i know.. it checks if the specified argument no($devid) in some function call is made into a block device and then proceeds with the execution of the loop. However am not understand what lofi@0:means? also is there... (3 Replies)
Discussion started by: wrapster
3 Replies

7. UNIX for Advanced & Expert Users

Need pseudo connectivity

Hi All, I have putty on my system (Vista). I need some server details to login via internet for my personnel practice. Can any body help me out. In case this not feasible, just let me know any other way to work with UNIX terminal on Windows Vista itself. Please help me since i am desparately... (3 Replies)
Discussion started by: vikas_kesarwani
3 Replies

8. UNIX for Dummies Questions & Answers

Pseudo Terminal

How can i view what my colleague is doing in the terminal pts/1 while i have logged into terminal pts/2 ?? Both have remotely logged in via ssh. (4 Replies)
Discussion started by: proactiveaditya
4 Replies

9. Homework & Coursework Questions

Print questions from a questions folder in a sequential order

1.) I am to write scripts that will be phasetest folder in the home directory. 2.) The folder should have a set-up,phase and display files I have written a small script which i used to check for the existing users and their password. What I need help with: I have a set of questions in a... (19 Replies)
Discussion started by: moraks007
19 Replies

10. Solaris

pseudo device?

sometimes I see this message in dmesg: what does it mean? thanks. (5 Replies)
Discussion started by: orange47
5 Replies
PTY(7)							     Linux Programmer's Manual							    PTY(7)

NAME
pty - pseudo-terminal interfaces DESCRIPTION
A pseudo-terminal is a pair of virtual character devices that provide a bidirectional communication channel. One end of the channel is called the master; the other end is called the slave. The slave end of the pseudo-terminal provides an interface that behaves exactly like a classical terminal. A process that expects to be connected to a terminal, can open the slave end of a pseudo-terminal and then be driven by a program that has opened the master end. Anything that is written on the master end is provided to the process on the slave end as though it was input typed on a terminal. For example, writing the interrupt character (usually control-C) to the master device would cause an interrupt signal (SIGINT) to be generated for the foreground process group that is connected to the slave. Conversely, anything that is written to the slave end of the pseudo-terminal can be read by the process that is connected to the master end. Pseudo-terminals are used by applications such as network login services (ssh(1), rlogin(1), telnet(1)), terminal emulators, script(1), screen(1), and expect(1). Historically, two pseudo-terminal APIs have evolved: BSD and System V. SUSv1 standardized a pseudo-terminal API based on the System V API, and this API should be employed in all new programs that use pseudo-terminals. Linux provides both BSD-style and (standardized) System V-style pseudo-terminals. System V-style terminals are commonly called Unix 98 pseudo-terminals on Linux systems. Since kernel 2.6.4, BSD-style pseudo-terminals are considered deprecated (they can be disabled when configuring the kernel); Unix 98 pseudo-terminals should be used in new applications. Unix 98 pseudo-terminals An unused Unix 98 pseudo-terminal master is opened by calling posix_openpt(3). (This function opens the master clone device, /dev/ptmx; see pts(4).) After performing any program-specific initializations, changing the ownership and permissions of the slave device using grantpt(3), and unlocking the slave using unlockpt(3)), the corresponding slave device can be opened by passing the name returned by ptsname(3) in a call to open(2). The Linux kernel imposes a limit on the number of available Unix 98 pseudo-terminals. In kernels up to and including 2.6.3, this limit is configured at kernel compilation time (CONFIG_UNIX98_PTYS), and the permitted number of pseudo-terminals can be up to 2048, with a default setting of 256. Since kernel 2.6.4, the limit is dynamically adjustable via /proc/sys/kernel/pty/max, and a corresponding file, /proc/sys/kernel/pty/nr, indicates how many pseudo-terminals are currently in use. For further details on these two files, see proc(5). BSD pseudo-terminals BSD-style pseudo-terminals are provided as precreated pairs, with names of the form /dev/ptyXY (master) and /dev/ttyXY (slave), where X is a letter from the 16-character set [p-za-e], and Y is a letter from the 16-character set [0-9a-f]. (The precise range of letters in these two sets varies across Unix implementations.) For example, /dev/ptyp1 and /dev/ttyp1 constitute a BSD pseudo-terminal pair. A process finds an unused pseudo-terminal pair by trying to open(2) each pseudo-terminal master until an open succeeds. The corresponding pseudo- terminal slave (substitute "tty" for "pty" in the name of the master) can then be opened. FILES
/dev/ptmx (Unix 98 master clone device) /dev/pts/* (Unix 98 slave devices) /dev/pty[p-za-e][0-9a-f] (BSD master devices) /dev/tty[p-za-e][0-9a-f] (BSD slave devices) NOTES
A description of the TIOCPKT ioctl(2), which controls packet mode operation, can be found in tty_ioctl(4). The BSD ioctl(2) operations TIOCSTOP, TIOCSTART, TIOCUCNTL, and TIOCREMOTE have not been implemented under Linux. SEE ALSO
select(2), setsid(2), forkpty(3), openpty(3), termios(3), pts(4), tty(4), tty_ioctl(4) COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2005-10-10 PTY(7)
All times are GMT -4. The time now is 07:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy