lookup-group ( key quot: ( key entry buffer size result -- error ) -- group/f )


Vocabulary
unix.groups.private

Inputs
keyan object
quota quotation with stack effect ( key entry buffer size result -- error )


Outputs
group/fan object


Definition


:: lookup-group
( key quot: ( key entry buffer size result -- error ) -- group/f )
4096 :> size! f :> found! [
[
group new :> entry size malloc &free :> buffer f
void* <ref>
:> result key entry buffer size result quot call
:> error error zero? [
result void* deref
[ entry group-struct>group ] [ f ] if found!
] when error
] with-destructors {
{ 0 [ f ] }
{ ENOENT [ f ] }
{ ESRCH [ f ] }
{ EINTR [ t ] }
{ ERANGE [ size 2 * size! t ] }
[ (throw-errno) ]
} case
] loop found ; inline