Function nc::lgetxattr [−][src]
pub fn lgetxattr(
filename: &str,
name: &str,
value: usize,
size: size_t
) -> Result<ssize_t, Errno>
Expand description
Get extended attribute value.
let path = "/tmp/nc-lgetxattr"; let ret = nc::open(path, nc::O_WRONLY | nc::O_CREAT, 0o644); assert!(ret.is_ok()); let fd = ret.unwrap(); assert!(nc::close(fd).is_ok()); let attr_name = "user.creator"; let attr_value = "nc-0.0.1"; //let flags = 0; let flags = nc::XATTR_CREATE; let ret = nc::setxattr( path, &attr_name, attr_value.as_ptr() as usize, attr_value.len(), flags, ); assert!(ret.is_ok()); let mut buf = [0_u8; 16]; let buf_len = buf.len(); let ret = nc::lgetxattr(path, attr_name, buf.as_mut_ptr() as usize, buf_len); assert!(ret.is_ok()); assert_eq!(ret, Ok(attr_value.len() as nc::ssize_t)); let attr_len = ret.unwrap() as usize; assert_eq!(attr_value.as_bytes(), &buf[..attr_len]); assert!(nc::unlink(path).is_ok());