pub fn ppoll(
fds: &mut [PollFd<'_>],
timeout: Option<Duration>,
sigmask: Option<&SignalMask>,
) -> Result<usize, Errno>Expand description
ppoll(2). Attend un événement sur l’un des fds jusqu’à timeout.
timeout = None→ attente indéfinie (timespecNULL).timeout = Some(d)→ attente bornée ;Duration::ZERO= sondage non bloquant.sigmask = None→NULL(aucune substitution de masque ; réservé à un usage futur).
Au retour, chaque [PollFd] de fds porte ses revents remplis par le
kernel (vide si le descripteur n’est pas prêt).
Retour : nombre de fd dont revents est non vide ; 0 = expiration.
§Errors
- [
Errno::EINTR] : un signal a interrompu l’attente — remonté tel quel (ADR-021 §2), aucune reprise automatique en couche 0. - [
Errno::EINVAL] :timespecinvalide — impossible via la conversion défensive interne (tv_nsec < 1e9,tv_sec ≥ 0). - [
Errno::EFAULT] : pointeur invalide — inatteignable via cette API safe (la slice et le masque proviennent de références vivantes).