nix::unistd

Function mkstemp

source
pub fn mkstemp<P: ?Sized + NixPath>(template: &P) -> Result<(RawFd, PathBuf)>
Expand description

Creates a regular file which persists even after process termination

  • template: a path whose 6 rightmost characters must be X, e.g. /tmp/tmpfile_XXXXXX
  • returns: tuple of file descriptor and filename

Err is returned either if no temporary filename could be created or the template doesn’t end with XXXXXX

See also mkstemp(2)

§Example

use nix::unistd;

let _ = match unistd::mkstemp("/tmp/tempfile_XXXXXX") {
    Ok((fd, path)) => {
        unistd::unlink(path.as_path()).unwrap(); // flag file to be deleted at app termination
        fd
    }
    Err(e) => panic!("mkstemp failed: {}", e)
};
// do something with fd