int grantpt(int fildes);
The grantpt() function changes the mode and ownership of the slave pseudo-terminal device associated with its master pseudo-terminal counterpart. fildes is the file descriptor returned from a successful open of the master pseudo-terminal device. A setuid root program (see setuid(2)) is invoked to change the permissions. The user ID of the slave is set to the real UID of the calling process and the group ID is set to a reserved group. The permission mode of the slave pseudo-terminal is set to readable and writable by the owner and writable by the group.
Upon successful completion, grantpt() returns 0. Otherwise, it returns -1 and sets errno to indicate the error.
The grantpt() function may fail if:
EBADF The fildes argument is not a valid open file descriptor.
EINVAL The fildes argument is not associated with a master pseudo-terminal device.
EACCES The corresponding slave pseudo-terminal device could not be accessed.
The grantpt() function will fail if it is unable to successfully invoke the setuid root program. It may also fail if the application has installed a signal handler to catch SIGCHLD signals.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
open(2), setuid(2), ptsname(3C), unlockpt(3C), attributes(5), standards(5)
STREAMS Programming Guide