Skip to main content

close_range

Function close_range 

Source
pub fn close_range(
    first: u32,
    last: u32,
    flags: CloseRangeFlags,
) -> Result<(), Errno>
Expand description

close_range(first, last, flags) (Linux 5.9+) — ferme tous les descripteurs de l’intervalle inclusif [first, last]. last == u32::MAX ferme tout à partir de first.

Confinement (ADR-122) : un enfant forké ferme en un appel tous les fd hérités hormis un keep-set (ring io_uring, sockets d’écoute, autres connexions), avant de poser sa cage — évite un balayage /proc/self/fd (openat/getdents) qui, lui, serait interdit par le profil confiné.

Contrairement à close, cette fonction ne consomme pas d’OwnedFd : elle opère sur des numéros bruts (l’appelant garantit qu’aucun OwnedFd vivant ne couvre l’intervalle, sous peine de double-fermeture au Drop).

§Errors

§Examples

use air_sys_syscall::fs::close_range;
use air_sys_types::fs::CloseRangeFlags;

// Ferme tout à partir du fd 3 (garde stdin/stdout/stderr).
close_range(3, u32::MAX, CloseRangeFlags::empty()).expect("close_range");