lx 0.4.0

A no_std crate to use Linux system calls
Documentation
use core::ffi::CStr;

use super::abi::*;
use crate::CStrArray;

/// Executes a program.
#[inline]
pub fn execve(filename: &CStr, argv: &CStrArray, envp: &CStrArray) -> crate::Result<!> {
    let ret = unsafe {
        syscall_3(
            59,
            filename.as_ptr() as usize,
            argv as *const CStrArray as usize,
            envp as *const CStrArray as usize,
        ) as u32
    };
    if let Ok(err) = crate::Error::try_from(ret) {
        return Err(err);
    }
    unreachable!("execve returned an invalid error code")
}