openpty, forkpty - Open and fork pseudoterminals
#include <sys/termios.h> <sys/ioctl.h>
struct termios *termp,
struct winsize *winp ); pid_t forkpty(
struct termios *termp,
struct winsize *winp );
Standard C Library (libc)
Points to the returned file descriptor for the master
pseudoterminal (pty). Points to the returned file
descriptor for the slave pty. Points to the pathname of
the slave pty. This parameter is optional. Specifies the
termios structure containing the terminal attributes for
the opened slave pty. This parameter is optional. Specifies
the winsize structure containing the window
attributes for the opened slave pty. This parameter is
The openpty() function opens the pty master/slave pair and
sets the terminal attributes of the slave pseudoterminal
according to the specifications in the termp and winp
parameters. The forkpty() function creates a child process
and establishes the slave pty as the child process'
controlling terminal. The openpty() function will first
attempt to open an SVR4 slave device, such as /dev/pts/11.
If unsuccessful, it will attempt a BSD device, such as
Note If a signal handler for SIGCHLD exists and the
openpty() or forkpty() function is invoked without superuser
privileges, the signal handler must be able to dismiss
an unexpected SIGCHLD signal.
Upon successful completion, the openpty() function returns
a value of 0 (zero). Otherwise, it returns a value of -1.
On success, the forkpty() function returns a value of 0
(zero) to the child process and returns the process ID of
the child process to the parent process. On error, the
forkpty() function returns a value of -1 to the parent
process and does not create a child process.
If any of the following conditions occurs, the openpty()
function sets errno to the corresponding value: The slave
pty special files have been exhausted. No more ptys can
be opened. The configured number of ptys has been reached.
The system limit for open file descriptors per process has
already reached OPEN_MAX. The system limit for open file
descriptors has been reached.
[Tru64 UNIX] Either the OPEN_MAX value or the perprocess
soft descriptor limit is checked. The system
file table is full. The system was unable to
allocate kernel memory for more file descriptors/processes.
The system-imposed limit on the
total number of processes executing for a single
user has been exceeded. This limit can be exceeded
by a process with superuser privilege.
[ Back ]