Copyright (C) 2000-2012 |
GNU Info (libc.info)Pseudo-Terminal PairsOpening a Pseudo-Terminal Pair ------------------------------ These functions, derived from BSD, are available in the separate `libutil' library, and declared in `pty.h'. - Function: int openpty (int *AMASTER, int *ASLAVE, char *NAME, struct termios *TERMP, struct winsize *WINP) This function allocates and opens a pseudo-terminal pair, returning the file descriptor for the master in *AMASTER, and the file descriptor for the slave in *ASLAVE. If the argument NAME is not a null pointer, the file name of the slave pseudo-terminal device is stored in `*name'. If TERMP is not a null pointer, the terminal attributes of the slave are set to the ones specified in the structure that TERMP points to (Note: Terminal Modes). Likewise, if the WINP is not a null pointer, the screen size of the slave is set to the values specified in the structure that WINP points to. The normal return value from `openpty' is 0; a value of -1 is returned in case of failure. The following `errno' conditions are defined for this function: `ENOENT' There are no free pseudo-terminal pairs available. *Warning:* Using the `openpty' function with NAME not set to `NULL' is *very dangerous* because it provides no protection against overflowing the string NAME. You should use the `ttyname' function on the file descriptor returned in *SLAVE to find out the file name of the slave pseudo-terminal device instead. - Function: int forkpty (int *AMASTER, char *NAME, struct termios *TERMP, struct winsize *WINP) This function is similar to the `openpty' function, but in addition, forks a new process (Note: Creating a Process) and makes the newly opened slave pseudo-terminal device the controlling terminal (Note: Controlling Terminal) for the child process. If the operation is successful, there are then both parent and child processes and both see `forkpty' return, but with different values: it returns a value of 0 in the child process and returns the child's process ID in the parent process. If the allocation of a pseudo-terminal pair or the process creation failed, `forkpty' returns a value of -1 in the parent process. *Warning:* The `forkpty' function has the same problems with respect to the NAME argument as `openpty'. automatically generated by info2www version 1.2.2.9 |