Skip to main content

pidfd_getfd

Function pidfd_getfd 

Source
pub fn pidfd_getfd(
    pidfd: BorrowedFd<'_>,
    target_fd: RawFd,
    flags: u32,
) -> Result<OwnedFd, Errno>
Expand description

Duplique un FD ouvert dans le processus référencé par pidfd.

Cf. docs/specs/layer-0/family-process.md, sous-section 3, pidfd_getfd. Cas d’usage spécialisé : debuggers, outils de surveillance, transfert de ressources entre processus coopérant.

Le FD retourné est propriété de l’appelant (OwnedFd) ; il pointe sur la même entrée du file table que target_fd côté processus cible. La fermeture côté cible ne ferme pas la copie locale, et réciproquement.

§Errors

  • Errno::EBADF : pidfd invalide, ou target_fd non ouvert dans le processus cible.
  • Errno::EPERM : pas de CAP_SYS_PTRACE et pas le même utilisateur que la cible. Sur Ubuntu, Yama ptrace_scope ≥ 2 peut également bloquer.
  • Errno::EINVAL : flags non nul (réservé).
  • Errno::ESRCH : le processus référencé n’existe plus.