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;