grantpt(3C)
NAME
grantpt − grant access to the STREAMS slave pty
SYNOPSIS
int grantpt (int fildes);
DESCRIPTION
The passed parameter, fildes, is a file descriptor that is returned from a successful open of a STREAMS master pty (pseudo-terminal) device. The grantpt() function modifies the ownership and mode of the slave pty device special file associated with its master pty counterpart.
A setuid() root program is spawned to change ownership and mode of the pty slave device file in the following way: The group ID is set to a reserved group named "tty". The slave user ID is set to the effective owner of the calling process. The permissions of the slave device are set so that the owner is allowed read and write access and the group is allowed write access.
RETURN VALUE
Upon successful completion, the grantpt() function returns a value of 0 (zero). Otherwise, it returns a value of -1.
Failure may result under the following conditions:
• The file descriptor specified by the fildes parameter is not an open file descriptor.
• The file descriptor specified by the fildes parameter is not associated with a STREAMS master pty device.
• The corresponding slave pty device cannot be accessed.
WARNINGS
The grantpt() function may also fail if the application has installed a signal handler to catch the SIGCHLD (death of a child) signal.
EXAMPLES
The following example shows how grantpt() is typically used.
int fd_master, fd_slave;
char *slave;
...
fd_master = open("/dev/ptmx", O_RDWR);
grantpt(fd_master);
unlockpt(fd_master);
slave = ptsname(fd_master);
fd_slave = open(slave, O_RDWR);
ioctl(fd_slave, I_PUSH, "ptem");
ioctl(fd_slave, I_PUSH, "ldterm");
AUTHOR
grantpt() was developed by HP and OSF.
SEE ALSO
open(2), unlockpt(3C), ptsname(3C), ptm(7), pts(7), ptem(7), ldterm(7).
Hewlett-Packard Company — HP-UX Release 10.20: July 1996