La fonction
openpty()
localise un pseudo terminal disponible
et renvoie des descripteurs de fichiers pour le maître et l'esclave dans
amaster
et
aslave.
Si la chaîne
name
ne vaut pas NULL, le nom de fichier de l'esclave est renvoyé dans
name.
Si
termp
ne vaut pas NULL, les paramètres du terminal esclave seront affectés
conformément aux valeurs spécifiées dans
termp.
Si
winp
ne vaut pas NULL, la taille de la fenêtre de l'esclave sera conditionnée
par les valeurs contenues dans
winp.
La fonction
login_tty()
prépare une connexion sur le terminal
fd
(qui peut être un véritable périphérique tty,
ou bien l'esclave d'un pseudo terminal tel que celui renvoyé par
openpty())
en créant une nouvelle session, en faisant de
fd
le terminal de contrôle pour le processus appelant, en affectant
fd
à l'entrée standard, à la sortie standard et aux flux d'erreur
du processus appelant, et enfin, en fermant
fd.
La fonction
forkpty()
combine
openpty(),
fork(2),
et
login_tty()
afin de créer un nouveau processus opérant dans un pseudo terminal.
Le descripteur de fichier de la partie maître du pseudo terminal
est renvoyé dans
amaster,
et le nom de fichier de l'esclave dans
name
s'il n'est pas NULL. Les paramètres
termp
et
winp,
s'ils ne valent pas NULL, déterminent les attributs du terminal
et la taille de la fenêtre de la partie esclave du pseudo terminal.