Function nc::listxattr[][src]

pub fn listxattr<P: AsRef<Path>>(
    filename: P,
    list: usize,
    size: size_t
) -> Result<ssize_t, Errno>
Expand description

List extended attribute names.

let path = "/tmp/nc-listxattr";
let ret = nc::openat(nc::AT_FDCWD, 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::listxattr(path, buf.as_mut_ptr() as usize, buf_len);
let attr_len = ret.unwrap() as usize;
assert_eq!(&buf[..attr_len - 1], attr_name.as_bytes());
assert!(nc::unlinkat(nc::AT_FDCWD, path, 0).is_ok());