---
name: "ausearch_add_item"
section: "3"
platform: "linux"
package: "audit"
version: "4.2.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ausearch_add_item"
---

# ausearch\_add\_item(3)

build up search rule

## NAME

ausearch\_add\_item - build up search rule

## SYNOPSIS

```
#include <auparse.h>
```

**int ausearch\_add\_item(auparse\_state\_t \****au***, const char \****field***, const char \****op***, const char \****value***, ausearch\_rule\_t** *how***);"**

## DESCRIPTION

ausearch\_add\_item adds one search condition to the current audit search expression. The search conditions can then be used to scan logs, files, or buffers for something of interest. The *field* value is the field name that the *value* will be checked for. The *op* variable describes what kind of check is to be done. Legal *op* values are:

- *exists*

   just check that a field name exists

- *=*

   locate the field name and check that the value associated with it is equal to the value given in this rule.

- *!=*

   locate the field name and check that the value associated with it is NOT equal to the value given in this rule.

The value parameter is compared to the uninterpreted field value. If you are trying to match against a field who's type is AUPARSE\_TYPE\_ESCAPED, you will want to use the ausearch\_add\_interpreted\_item() function instead.

The *how* value determines how this search condition will affect the existing search expression if one is already defined. The possible values are:

- *AUSEARCH\_RULE\_CLEAR*

  Clear the current search expression, if any, and use only this search condition.

- *AUSEARCH\_RULE\_OR*

  If a search expression *E* is already configured, replace it by **(***E* **\|\|** *this\_search\_condition***)**.

- *AUSEARCH\_RULE\_AND*

  If a search expression *E* is already configured, replace it by **(***E* **&&** *this\_search\_condition***)**.

## RETURN VALUE

Returns -1 if an error occurs; otherwise, 0 for success.

## SEE ALSO

[**ausearch\_add\_expression**(3)](/ausearch_add_expression/3.md), [**ausearch\_add\_interpreted\_item**(3)](/ausearch_add_interpreted_item/3.md), [**ausearch\_add\_timestamp\_item**(3)](/ausearch_add_timestamp_item/3.md), [**ausearch\_add\_regex**(3)](/ausearch_add_regex/3.md), [**ausearch\_set\_stop**(3)](/ausearch_set_stop/3.md), [**ausearch\_clear**(3)](/ausearch_clear/3.md), [**ausearch\_next\_event**(3)](/ausearch_next_event/3.md), [**ausearch\_cur\_event**(3)](/ausearch_cur_event/3.md), [**ausearch-expression**(5)](/ausearch-expression/5.md).

## AUTHOR

Steve Grubb
