# 36.9. `pty` — Outils de manipulation de pseudo-terminaux

Le module `pty` expose des fonctions de manipulation de pseudo-terminaux, il permet d’écrire un programme capable de démarrer un autre processus, d’écrire et de lire depuis son terminal.

La gestion de pseudo-terminaux étant très dépendante de la plateforme, ce code ne gère que Linux. (Code supposé fonctionner sur d’autres plateformes, mais sans avoir été testé).

Le module `pty` expose les fonctions suivantes :

`pty.``fork`()

  Fork. Connecte le terminal contrôlé par le fils à un pseudo-terminal. La valeur renvoyée est `(pid, fd)`. Notez que le fils obtient `0` comme pid et un fd non valide. Le parent obtient le pid du fils, et fd un descripteur de fichier connecté à un terminal contrôlé par le fils (et donc à l’entrée et la sortie standard du fils).

`pty.``openpty`()

  Ouvre une nouvelle paire de pseudo-terminaux, en utilisant si possible `os.openpty()`, ou du code émulant la fonctionnalité pour des systèmes Unix génériques. Renvoie une paire de descripteurs de fichier `(master, slave)`, pour le maître et pour l’esclave respectivement.

`pty.``spawn`(argv[, master_read[, stdin_read]])

  Crée un nouveau processus et connecte son terminal aux entrées/sorties standard du processus courant. C’est typiquement utilisé pour duper les programmes insistant sur le fait de lire depuis leur terminal.

  Les fonctions master_read et stdin_read doivent être des fonctions lisant sur un descripteur de fichier. Par défaut elles lisent 1024 octets à chaque fois qu’elles sont appelées.