semanage\_query(3) Libsemanage API documentation semanage\_query(3)

# [NAME](#NAME)

semanage\_query - SELinux Management API

# [SYNOPSIS](#SYNOPSIS)

The following query function is supported for any semanage record.  
Replace the function and object name as necessary.

**extern int QUERY\_FUNCTION (**  
**semanage\_handle\_t \*handle,**  
**const semanage\_OBJECT\_key\_t \*key,**  
**semanage\_OBJECT\_t \*\*response);**

# [DESCRIPTION](#DESCRIPTION)

[**Behavior:**](#Behavior:)

The query function will fail if a matching key is not found. Otherwise, the corresponding object is returned.

[**Parameters:**](#Parameters:)

The *handle* is used to track persistent state across semanage calls, and for error reporting. The *key* identifies the object being queried, which will be stored in the address pointed by *response* The key is a property of the caller, and will not be stored or modified internally. The object returned becomes a property of the caller, and must be freed with **semanage\_OBJECT\_free.**

[**Requirements:**](#Requirements:)

This function requires an semanage connection to be established (see [**semanage\_connect**(3)](/man/os/libsemanage/semanage_connect.3) )

# [RETURN VALUE](#RETURN_VALUE)

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.

# [SEE ALSO](#SEE_ALSO)

[**semanage\_handle\_create**(3)](/man/os/libsemanage/semanage_handle_create.3), [**semanage\_connect**(3)](/man/os/libsemanage/semanage_connect.3),

15 March 2006 ivg2@cornell.edu

---

Document: semanage_port_query(3) from libsemanage 3.11-r3 (Chainguard OS)
Source: https://github.com/SELinuxProject/selinux.git
