pub unsafe fn getgroups(group_list: &mut [gid_t]) -> Result<i32, Errno>
Expand description
Get list of supplementary group Ids.
§Examples
let mut groups = vec![];
let ret = unsafe { nc::getgroups(&mut groups) };
assert!(ret.is_ok());
let total_num = ret.unwrap();
groups.resize(total_num as usize, 0);
let ret = unsafe { nc::getgroups(&mut groups) };
assert!(ret.is_ok());
assert_eq!(ret, Ok(total_num));
Examples found in repository?
examples/getgroups.rs (line 8)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
fn main() {
{
let mut groups = vec![];
let ret = unsafe { nc::getgroups(&mut groups) };
assert!(ret.is_ok());
let total_num = ret.unwrap();
groups.resize(total_num as usize, 0);
let ret = unsafe { nc::getgroups(&mut groups) };
assert!(ret.is_ok());
assert_eq!(ret, Ok(total_num));
}
{
let mut groups = vec![0; 8];
let mut ret = unsafe { nc::getgroups(&mut groups) };
while ret.is_err() && ret == Err(nc::EINVAL) {
groups.resize(groups.len() * 2, 0);
ret = unsafe { nc::getgroups(&mut groups) };
}
}
}