Skip to main content

memfd_create

Function memfd_create 

Source
pub fn memfd_create(name: &CStr, flags: MemfdFlags) -> Result<OwnedFd, Errno>
Expand description

Crée un fichier mémoire anonyme (memfd).

Wrappeur de memfd_create(2) (Linux 3.17+, numéro x86_64: 319, aarch64: 279). Primitive centrale pour la mémoire partagée moderne sur Linux, utilisée par le data plane de Conduit (ADR-001).

Le FD retourné peut être :

  • étendu avec ftruncate(2) ;
  • mappé avec mmap_file ;
  • partagé entre processus via SCM_RIGHTS sur un socket Unix ;
  • scellé pour interdire des modifications futures.

§Parameters

  • name : nom descriptif (visible dans /proc/PID/fd/, pas unique).
  • flags : combinaison de [MemfdFlags]. CLOEXEC recommandé.

§Errors

  • EINVAL : flags invalides ou name trop long.
  • EMFILE : quota de FD du processus atteint.
  • ENFILE : quota de FD système atteint.
  • ENOMEM : mémoire kernel insuffisante.

§Examples

use air_sys_syscall::mem::memfd_create;
use air_sys_types::mem::MemfdFlags;
use core::ffi::CStr;

let fd = memfd_create(c"shared-buffer", MemfdFlags::CLOEXEC | MemfdFlags::ALLOW_SEALING)
    .expect("memfd_create");