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
de terminal (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.65 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> ».