grantpt(3C) grantpt(3C)
NAME
grantpt - Zugriff auf das Slave-Pseudo-Terminalgerät erlauben
SYNTAX
#include <stdlib.h>
int grantpt(int fildes);
BESCHREIBUNG
Die Funktion grantpt() ändert die Zugriffsrechte und den Eigentümer
des Slave-Pseudoterminalgeräts, die ihrem Master-Gegenstück zugeordnet
ist. fildes ist ein Dateideskriptor, der bei einem erfolgreichen Öff-
nen des Master-Pseudoterminals geliefert wurde. Ein Programm mit
gesetztem s-Bit für root wird aufgerufen [siehe setuid(2)], um die
Zugriffsrechte zu ändern. Die Benutzer-ID des Slave-Geräts wird gleich
der realen Benutzer-ID des aufrufenden Prozesses, die Gruppen-ID wird
auf eine reservierte Gruppen-ID gesetzt. Die Zugriffsrechte werden so
gesetzt, daß für das Slave-Pseudoterminalgerät das Lesen und Schreiben
für den Eigentümer sowie das Schreiben für die Gruppe erlaubt sind.
DIAGNOSE
Bei erfolgreicher Beendigung liefert die Funktion grantpt() den Wert
0, andernfalls liefert sie den Wert -1 zurück. Fehler können auftre-
ten, wenn fildes kein offener Dateideskriptor ist, wenn fildes keinem
Master-Pseudoterminal zugeordnet ist oder wenn auf das entsprechende
Slave-Gerät nicht zugegriffen werden kann.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Die Funktion grantpt() kann bei folgenden Bedingungen fehlschlagen:
EBADF Das Argument fildes ist kein gültiger, offener Dateideskrip-
tor.
EINVAL Das Argument fildes ist keinem Master-Pseudoterminalgerät
zugeordnet.
EACCES Auf das zugehörige Slave-Pseudoterminalgerät konnte nicht
zugegriffen werden.
ANWENDUNGSZWECK
Die Funktion grantpt() kann ferner fehlschlagen, wenn die Anwendung
eine Signalbehandlungsroutine zum Abfangen von SIGCHLD-Signalen
installiert hat.
SIEHE AUCH
open(2), setuid(2), ptsname(3C), unlockpt(3C), stdlib(5).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98