Skip to main content

pty_peer

Function pty_peer 

Source
pub fn pty_peer(master: BorrowedFd<'_>) -> Result<OwnedFd, Errno>
Expand description

pty_peer (TIOCGPTPEER) — ouvre directement l’esclave de master et renvoie son descripteur.

Voie moderne (Linux 4.13+) : elle évite le TOCTOU du chemin /dev/pts/N (où l’esclave pourrait être substitué entre la résolution du nom et l’ouverture). L’argument ioctl est une valeur entière de drapeaux d’ouverture — O_RDWR | O_NOCTTY | O_CLOEXEC, O_CLOEXEC étant demandé explicitement (cet ioctl ne l’ajoute pas, contrairement à crate::fs::openat). La valeur de retour de l’ioctl est le nouveau fd de l’esclave.

Prérequis : l’esclave doit être déverrouillé au préalable (pty_unlock).

§Errors

  • [Errno::ENOTTY] : master n’est pas un maître de PTY.
  • [Errno::EBADF] : master n’est pas un descripteur valide.
  • [Errno::EINVAL] : kernel antérieur à 4.13 (ioctl non pris en charge).