openpty(3) Library Functions Manual openpty(3) NOM openpty, login_tty, forkpty - Fonctions utilitaires pour terminaux (tty) BIBLIOTHEQUE Bibliotheque d'utilitaires systeme (libutil, -lutil) SYNOPSIS #include int openpty(int *amaster, int *aslave, char *nom, const struct termios *termp, const struct winsize *winp); pid_t forkpty(int *amaster, char *nom, const struct termios *termp, const struct winsize *winp); #include int login_tty(int fd); DESCRIPTION La fonction openpty() localise un pseudoterminal disponible et renvoie des descripteurs de fichier pour le maitre et l'esclave dans amaster et aslave. Si la chaine nom ne vaut pas NULL, le nom de fichier de l'esclave est renvoye dans nom. Si termp ne vaut pas NULL, les parametres du terminal esclave seront affectes conformement aux valeurs specifiees dans termp. Si winp ne vaut pas NULL, la taille de la fenetre de l'esclave sera conditionnee par les valeurs contenues dans winp. La fonction login_tty() prepare une connexion sur le terminal auquel le descripteur de fichier fd se refere (qui peut etre un veritable peripherique de terminal (tty), ou bien l'esclave d'un pseudoterminal tel que celui renvoye par openpty()) en creant une nouvelle session, en faisant de fd le terminal de controle pour le processus appelant, en affectant fd a l'entree standard, a 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 creer un nouveau processus operant dans un pseudoterminal. Un descripteur de fichier se referant a la partie maitre du pseudoterminal est renvoye dans amaster. Si le nom n'est pas NULL, le tampon vers lequel il pointe est utilise pour pour renvoyer le nom de fichier de l'esclave. Les parametres termp et winp, s'ils ne valent pas NULL, determinent les attributs du terminal et la taille de la fenetre de la partie esclave du pseudoterminal. VALEUR RENVOYEE Lorsqu'un appel a openpty(), login_tty() ou forkpty() echoue, alors, -1 est renvoye et errno est positionnee afin de preciser l'erreur. Sinon openpty(), login_tty(), ainsi que le processus fils de forkpty() renvoient 0 tandis que le processus pere de forkpty() renvoie le PID du processus fils. ERREURS openpty() echoue lorsque : ENOENT Il n'y a plus de terminaux disponibles. login_tty() echoue lorsque ioctl(2) ne parvient pas a affecter fd au terminal de controle du processus appelant. forkpty() echoue en cas d'echec de openpty() ou de fork(2). ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +------------------+--------------------------+------------------------+ |Interface | Attribut | Valeur | +------------------+--------------------------+------------------------+ |forkpty(), | Securite des threads | MT-Safe locale | |openpty() | | | +------------------+--------------------------+------------------------+ |login_tty() | Securite des threads | MT-Unsafe race:ttyname | +------------------+--------------------------+------------------------+ STANDARDS BSD. HISTORIQUE Les modificateurs const ont ete ajoutes dans la glibc 2.8 aux arguments des fonctions openpty() et forkpty() qui sont des pointeurs sur des structures. Avant la glibc 2.0.92, openpty() renvoie des descripteurs de fichier pour une paire de pseudoterminaux BSD ; depuis la 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'echec. BOGUES Personne ne sait combien d'espace il faut reserver pour name, ainsi les appels openpty() et forkpty() avec un argument name non nul peuvent poser un probleme de securite. VOIR AUSSI fork(2), ttyname(3), pty(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 openpty(3)