Function nc::flock[][src]

pub fn flock(fd: i32, operation: i32) -> Result<(), Errno>
Expand description

Apply or remove an advisory lock on an open file.

let path = "/tmp/nc-flock";
let ret = nc::open(path, nc::O_WRONLY | nc::O_CREAT, 0o644);
assert!(ret.is_ok());
let fd = ret.unwrap();
let ret = nc::flock(fd, nc::LOCK_EX);
assert!(ret.is_ok());
let msg = "Hello, Rust";
let ret = nc::write(fd, msg.as_ptr() as usize, msg.len());
assert!(ret.is_ok());
assert_eq!(ret, Ok(msg.len() as nc::ssize_t));
let ret = nc::flock(fd, nc::LOCK_UN);
assert!(ret.is_ok());
assert!(nc::close(fd).is_ok());
assert!(nc::unlink(path).is_ok());