NOM¶
openpty, login_tty, forkpty - Fonctions utilitaires pour terminaux tty
SYNOPSIS¶
#include <pty.h>
int openpty(int *amaster, int *aslave, char *name,
const struct termios *termp,
const struct winsize *winp);
pid_t forkpty(int *amaster, char *name,
const struct termios *termp,
const struct winsize *winp);
#include <utmp.h>
int login_tty(int fd);
Effectuez l'édition des liens avec l'option -lutil.
DESCRIPTION¶
La fonction
openpty() localise un pseudoterminal disponible et renvoie
des descripteurs de fichier 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 pseudoterminal 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 courant, 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 pseudoterminal. Le descripteur de fichier de la partie maître du
pseudoterminal 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
pseudoterminal.
VALEUR RENVOYÉE¶
Lorsqu'un appel à
openpty(),
login_tty() ou
forkpty()
échoue, alors, -1 est renvoyé et
errno est positionnée
afin de préciser l'erreur. Sinon
openpty(),
login_tty(),
ainsi que le processus fils de
forkpty() renvoient 0 tandis que le
processus père de
forkpty() renvoie le PID du processus fils.
ERREURS¶
openpty() échoue lorsque :
- ENOENT
- Il n'y a plus de terminaux disponibles.
login_tty() échoue lorsque
ioctl(2) ne parvient pas à
affecter
fd au terminal de contrôle du processus appelant.
forkpty() échoue en cas d'échec de
openpty() ou de
fork(2).
Il s'agit de fonctions BSD présentes dans la libc5 et la glibc2. Elles ne
font pas partie du standard POSIX.
NOTES¶
Les modificateurs
const ont été ajoutés dans la glibc 2.8
aux arguments des fonctions
openpty() et
forkpty() qui sont des
pointeurs sur des structures.
Avec les versions de la glibc antérieures à 2.0.92,
openpty()
renvoie des descripteurs de fichier pour une paire de pseudoterminaux
BSD ; depuis glibc 2.0.92, elle essaie d'abord d'ouvrir une paire de
pseudoterminaux UNIX 98, et se rabat sur des pseudoterminaux BSD en cas
d'échec.
BOGUES¶
Personne ne sait combien d'espace il faut réserver pour
name, ainsi
les appels
openpty() et
forkpty() avec un argument
name
non nul peuvent poser un problème de sécurité.
VOIR AUSSI¶
fork(2),
ttyname(3),
pty(7)
COLOPHON¶
Cette page fait partie de la publication 3.44 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
<
http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Stéphan Rafin (2002), Alain Portal
<
http://manpagesfr.free.fr/> (2006). Nicolas François et
l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande «
man -L C
<section> <page_de_man> ».