Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

OpenSolaris 2009.06 - man page for posix_openpt (opensolaris section 3c)

posix_openpt(3C)					   Standard C Library Functions 					  posix_openpt(3C)

posix_openpt - open a pseudo terminal device
#include <stdlib.h> #include <fcntl.h> int posix_openpt(int oflag);
The posix_openpt() function establishes a connection between a master device for a pseudo-terminal and a file descriptor. The file descrip- tor is used by other I/O functions that refer to that pseudo-terminal. The file status flags and file access modes of the open file description are set according to the value of oflag. Values for oflag are constructed by a bitwise-inclusive OR of flags from the following list, defined in <fcntl.h>. O_RDWR Open for reading and writing. O_NOCTTY If set, posix_openpt() does not cause the terminal device to become the controlling terminal for the process. The behavior of other values for the oflag argument is unspecified.
Upon successful completion, the posix_openpt() function opens a master pseudo-terminal device and returns a non-negative integer represent- ing the lowest numbered unused file descriptor. Otherwise, -1 is returned and errno is set to indicate the error.
The posix_openpt() function will fail if: EMFILE {OPEN_MAX} file descriptors are currently open in the calling process. ENFILE The maximum allowable number of files is currently open in the system. The posix_openpt() function may fail if: EINVAL The value of oflag is not valid. EAGAIN Out of pseudo-terminal resources. ENOSR Out of STREAMS resources.
Example 1 Open a pseudo-terminal. The following example opens a pseudo-terminal and returns the name of the slave device and a file descriptor. #include fcntl.h> #include stdio.h> int masterfd, slavefd; char *slavedevice; masterfd = posix_openpt(O_RDWR|O_NOCTTY); if (masterfd == -1 || grantpt (masterfd) == -1 || unlockpt (masterfd) == -1 || (slavedevice = ptsname (masterfd)) == NULL) return -1; printf("slave device is: %s\n", slavedevice); slavefd = open(slave, O_RDWR|O_NOCTTY); if (slavefd < 0) return -1;
This function provieds a method for portably obtaining a file descriptor of a master terminal device for a pseudo-terminal. The grantpt(3C) and ptsname(3C) functions can be used to manipulate mode and ownership permissions and to obtain the name of the slave device, respec- tively.
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+
open(2), grantpt(3C), ptsname(3C), unlockpt(3C), attributes(5), standards(5) SunOS 5.11 1 Dec 2003 posix_openpt(3C)