Skip to main content

getdents64

Function getdents64 

Source
pub fn getdents64(fd: BorrowedFd<'_>, buffer: &mut [u8]) -> Result<usize, Errno>
Expand description

Lit les entrées d’un répertoire.

Wrappeur de getdents64(2). Le paramètre buffer est un buffer brut dont le format binaire est parsé en interne. Utiliser parse_dirents pour itérer sur les entrées.

Allocation intrinsèque : le buffer est alloué par l’appelant (pas de contrainte sur la taille, mais 4096+ octets est recommandé).

§Parameters

  • fd : FD d’un répertoire ouvert avec DIRECTORY.
  • buffer : buffer de lecture (au moins quelques Ko recommandés).

§Errors

  • EINVAL : buffer trop petit pour contenir une entrée.
  • ENOTDIR : FD n’est pas un répertoire.
  • EBADF : FD invalide.

§Examples

use air_sys_syscall::fs::{getdents64, parse_dirents};
use air_sys_types::fd::BorrowedFd;

let mut buffer = vec![0u8; 4096];
let n = getdents64(dir_fd, &mut buffer).expect("getdents64");
for entry in parse_dirents(&buffer[..n]) {
    println!("{:?}", entry.name);
}