grantpt — grant access to the slave pseudoterminal
#define _XOPEN_SOURCE /* See feature_test_macros(7) */ #include <stdlib.h>
| int
            grantpt( | int fd ); | 
The grantpt() function
      changes the mode and owner of the slave pseudoterminal device
      corresponding to the master pseudoterminal referred to by
      fd. The user ID of
      the slave is set to the real UID of the calling process. The
      group ID is set to an unspecified value (e.g., tty). The mode of the slave is set to 0620
      (crw−−w−−−−).
The behavior of grantpt() is
      unspecified if a signal handler is installed to catch
      SIGCHLD signals.
When successful, grantpt()
      returns 0. Otherwise, it returns −1 and sets
      errno appropriately.
The corresponding slave pseudoterminal could not be accessed.
The fd
            argument is not a valid open file descriptor.
The fd
            argument is valid but not associated with a master
            pseudoterminal.
This is part of the UNIX 98 pseudoterminal support, see pts(4). Many systems implement this function via a set-user-ID helper binary called "pt_chown". With Linux devpts no such helper binary is required.