---
name: "semanage_query"
section: "3"
platform: "linux"
package: "libsemanage-dev"
version: "3.8.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/semanage_query"
---

# semanage\_query(3)

SELinux Management API

## NAME

semanage\_query - SELinux Management API

## 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

- **Behavior:**

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

- **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:**

  This function requires an semanage connection to be established (see **semanage\_connect**(3) )

## 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

**semanage\_handle\_create**(3), **semanage\_connect**(3),
