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.