Opens a pseudo-terminal device.
Standard C library (libc.a)
#include <stdlib.h<
#include <fcntl.h>
int posix_openpt (oflag
)
int oflag;
The posix_openpt subroutine establishes a connection between a master device for a pseudo terminal and a file descriptor. The file descriptor 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 the oflag parameter.
Item | Description |
---|---|
oflag | Values for the oflag parameter are
constructed by a bitwise-inclusive OR of flags from the following
list, defined in the <fcntl.h> file:
The behavior of other values for the oflag parameter is unspecified. |
Upon successful completion, the posix_openpt subroutine opens a master pseudo-terminal device and returns a non-negative integer representing the lowest numbered unused file descriptor. Otherwise, -1 is returned and the errno global variable is set to indicate the error.
Item | Description |
---|---|
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. |
Item | Description |
---|---|
EINVAL | The value of the oflag parameter is not valid. |
EAGAIN | Out of pseudo-terminal resources. |
ENOSR | Out of STREAMS resources. |
#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(slavedevice, O_RDWR|O_NOCTTY);
if (slavefd < 0)
return -1;