Loading

NOM

       openpty, login_tty, forkpty - Fonctions utilitaires pour terminaux tty

SYNOPSIS

       #include <pty.h>

       int openpty(int *amaster, int *aslave, char *name,
                   struct termios *termp, struct winsize *winp);

       pid_t forkpty(int *amaster, char *name, struct termios *termp,
                     struct winsize *winp);

       #include <utmp.h>

       int login_tty(int fd);

       Effectuez l’édition des liens avec l’option -lutil.

       La fonction openpty() localise un pseudo-terminal 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
       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  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  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.

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).

CONFORMITÉ

       Il s’agit de fonctions BSD présentes dans la libc5 et la glibc2.

NOTES

       Avec  les  versions de la glibc antérieures à 2.0.92, openpty() renvoie
       des descripteurs de fichier pour une paire  de  pseudo-terminaux  BSD ;
       depuis  glibc  2.0.92,  elle  essaie  d’abord  d’ouvrir  une  paire  de
       pseudo-terminaux Unix 98, et se rabat sur des pseudo-terminaux  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.23 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

       Cette page de manuel a été traduite  par  Stéphan  Rafin  <stephan  DOT
       rafin  AT  laposte  DOT  net> en 2002, puis a été mise à jour par Alain
       Portal <aportal AT  univ-montp2  DOT  fr>  jusqu’en  2006,  et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>    et    l’équipe   francophone   de
       traduction de Debian.

       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> ».