Skip to main content

execveat

Function execveat 

Source
pub fn execveat(
    dirfd: DirFd<'_>,
    path: &CStr,
    argv: &[&CStr],
    envp: &[&CStr],
    flags: ExecveatFlags,
) -> Result<Infallible, Errno>
Expand description

Variante *at d’execve (préférée par ADR-021) : résout l’exécutable relativement à dirfd, ou — avec [ExecveatFlags::EMPTY_PATH] et path == c"" — exécute directement le binaire désigné par dirfd (un fd ouvert sur l’exécutable, typiquement avec O_PATH), éliminant toute race entre l’ouverture/vérification et l’exec.

Cf. docs/specs/layer-0/family-process.md. Comme execve, ne retourne jamais en cas de succès.

§Errors

Mêmes erreurs qu’execve, plus :

  • [Errno::EBADF] : dirfd n’est ni AT_FDCWD ni un fd ouvert valide.
  • [Errno::ENOENT] : path est vide sans [ExecveatFlags::EMPTY_PATH].
  • [Errno::ELOOP] : composant final symbolique avec [ExecveatFlags::SYMLINK_NOFOLLOW].