NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |SEE ALSO |COLOPHON | |
semanage_iterate(3) Libsemanage API documentationsemanage_iterate(3)semanage_iterate - SELinux Management API
The following iterate function is supported for any semanage record. Replace the function and object name as necessary.extern int ITERATE_FUNCTION (semanage_handle_t *handle,int (*handler) (const semanage_OBJECT_t *object,void *varg),void *handler_arg);
Behavior: The iterate function will execute the specified handler over all objects in the selected location. An arbitrary argument can be passed into the handler function along with each object. The object passed in is property of the libsemanage library, and may not be modified or preserved - usesemanage_OBJECT_cloneif that is necessary. The handler code may not invoke any semanage write requests for the same object type (i.e. modifying the underlying store is not allowed). The iterate function is reentrant only while inside a transaction (seesemanage_begin_transaction). It is not safe to execute other semanage read or write requests within iterate if not inside a transaction. The handler may return -1 to signal error exit, 0 to signal continue, and 1 to signal successful exit early (the iterate function will stop accordingly).Parameters: Thehandle is used to track persistent state across semanage calls, and for error reporting. Thehandler is the function to execute, withhandler_arg as its second parameter, and each object as its first parameter.Requirements: This function requires an semanage connection to be established (seesemanage_connect(3) )
In case of failure, -1 is returned, and the semanage error callback is invoked, describing the error. Otherwise a non- negative integer is returned (a commit number). The same number will be returned by all other semanage object read calls until the next commit.
semanage_handle_create(3),semanage_connect(3),
This page is part of theselinux (Security-Enhanced Linux user- space libraries and tools) project. Information about the project can be found at ⟨https://github.com/SELinuxProject/selinux/wiki⟩. If you have a bug report for this manual page, see ⟨https://github.com/SELinuxProject/selinux/wiki/Contributing⟩. This page was obtained from the project's upstream Git repository ⟨https://github.com/SELinuxProject/selinux⟩ on 2025-08-11. (At that time, the date of the most recent commit that was found in the repository was 2025-08-04.) If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up-to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgivg2@cornell.edu 15 March 2006semanage_iterate(3)Pages that refer to this page:semanage_bool(3), semanage_fcontext(3), semanage_iface(3), semanage_node(3), semanage_port(3), semanage_seuser(3), semanage_user(3)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |