1.\"- 2.\" Copyright (c) 2001 Chris D. Faulhaber 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.Dd September 21, 2023 27.Dt ACL_GET_ENTRY 3 28.Os 29.Sh NAME 30.Nm acl_get_entry 31.Nd retrieve an ACL entry from an ACL 32.Sh LIBRARY 33.Lb libc 34.Sh SYNOPSIS 35.In sys/types.h 36.In sys/acl.h 37.Ft int 38.Fn acl_get_entry "acl_t acl" "int entry_id" "acl_entry_t *entry_p" 39.Sh DESCRIPTION 40The 41.Fn acl_get_entry 42function 43is a POSIX.1e call that retrieves a descriptor for an ACL entry 44specified by the argument 45.Fa entry_id 46within the ACL indicated by the argument 47.Fa acl . 48.Pp 49If the value of 50.Fa entry_id 51is 52.Dv ACL_FIRST_ENTRY , 53then the function will return in 54.Fa entry_p 55a descriptor for the first ACL entry within 56.Fa acl . 57If a call is made to 58.Fn acl_get_entry 59with 60.Fa entry_id 61set to 62.Dv ACL_NEXT_ENTRY 63when there has not been either an initial successful call to 64.Fn acl_get_entry , 65or a previous successful call to 66.Fn acl_create_entry , 67.Fn acl_delete_entry , 68.Fn acl_dup , 69.Fn acl_from_text , 70.Fn acl_get_fd , 71.Fn acl_get_file , 72.Fn acl_set_fd , 73.Fn acl_set_file , 74or 75.Fn acl_valid , 76then the result is unspecified. 77.Sh RETURN VALUES 78If the 79.Fn acl_get_entry 80function successfully obtains an ACL entry, a value of 1 is returned. 81If the ACL has no ACL entries, the 82.Fn acl_get_entry 83returns a value of 0. 84If the value of 85.Fa entry_id 86is 87.Dv ACL_NEXT_ENTRY 88and the last ACL entry in the ACL has already been returned by a 89previous call to 90.Fn acl_get_entry , 91a value of 0 will be returned until a successful call with 92.Fa entry_id 93of 94.Dv ACL_FIRST_ENTRY 95is made. 96Otherwise, a value of -1 will be returned and 97the global variable 98.Va errno 99will be set to indicate the error. 100.Sh ERRORS 101The 102.Fn acl_get_entry 103function fails if: 104.Bl -tag -width Er 105.It Bq Er EINVAL 106Argument 107.Fa acl 108does not point to a valid ACL. 109Argument 110.Fa entry_id 111is neither 112.Dv ACL_FIRST_ENTRY 113nor 114.Dv ACL_NEXT_ENTRY . 115.El 116.Sh SEE ALSO 117.Xr acl 3 , 118.Xr acl_calc_mask 3 , 119.Xr acl_create_entry 3 , 120.Xr acl_delete_entry 3 , 121.Xr acl_dup 3 , 122.Xr acl_from_text 3 , 123.Xr acl_get_fd 3 , 124.Xr acl_get_file 3 , 125.Xr acl_init 3 , 126.Xr acl_set_fd 3 , 127.Xr acl_set_file 3 , 128.Xr acl_valid 3 , 129.Xr posix1e 3 130.Sh STANDARDS 131POSIX.1e is described in IEEE POSIX.1e draft 17. 132.Sh HISTORY 133POSIX.1e support was introduced in 134.Fx 4.0 . 135The 136.Fn acl_get_entry 137function was added in 138.Fx 5.0 . 139.Sh AUTHORS 140The 141.Fn acl_get_entry 142function was written by 143.An Chris D. Faulhaber Aq Mt jedgar@fxp.org . 144