---
name: "ldap_compare"
section: "3"
platform: "linux"
package: "libldap"
version: "2.7.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/ldap_compare"
---

# ldap\_compare(3)

Perform an LDAP compare operation.

## NAME

ldap\_compare, ldap\_compare\_s, ldap\_compare\_ext, ldap\_compare\_ext\_s - Perform an LDAP compare operation.

## LIBRARY

OpenLDAP LDAP (libldap, -lldap)

## SYNOPSIS

```
#include <ldap.h>
```

**int ldap\_compare\_ext(**

**LDAP \****ld***,** **char \****dn***,** **char \****attr***,** **const struct berval \****bvalue***,** **LDAPControl \*\****serverctrls***,** **LDAPControl \*\****clientctrls***,** **int \****msgidp* **);**

**int ldap\_compare\_ext\_s(**

**LDAP \****ld***,** **char \****dn***,** **char \****attr***,** **const struct berval \****bvalue***,** **LDAPControl \*\****serverctrls***,** **LDAPControl \*\****clientctrls* **);**

## DESCRIPTION

**The** **ldap\_compare\_ext\_s()** **routine is used to perform an LDAP compare operation synchronously.** **It takes** *dn***, the DN of the entry upon which to perform the** **compare, and** *attr* **and** *value***, the attribute description and** **value to compare to those found in the entry.  It returns a code, which** **will be LDAP\_COMPARE\_TRUE if the entry contains the attribute value and** **LDAP\_COMPARE\_FALSE if it does not.  Otherwise, an error code is** **returned that indicates the nature of the problem.  See** [**ldap**(3)](/ldap/3.md) **for details.**

**The** **ldap\_compare\_ext()** **routine is used to perform an LDAP compare operation** **asynchronously.  It takes the same parameters as** **ldap\_compare\_ext\_s()**, **but provides the message id of the request it initiated in the** **integer pointed to** *msgidp***.  The result of** **the compare can be obtained by a subsequent call to** [**ldap\_result**(3)](/ldap_result/3.md).

**Both routines allow server and client controls to be specified to** **extend the compare request.**

## DEPRECATED INTERFACES

**The routines** **ldap\_compare**() **and** **ldap\_compare\_s**() **are deprecated in favor of** **ldap\_compare\_ext**() **and** **ldap\_compare\_ext\_s**(), **respectively.**

**Deprecated interfaces generally remain in the library.  The macro** **LDAP\_DEPRECATED can be defined to a non-zero value** **(e.g., -DLDAP\_DEPRECATED=1) when compiling program designed to use** **deprecated interfaces.  It is recommended that developers writing new** **programs, or updating old programs, avoid use of deprecated interfaces.** **Over time, it is expected that documentation (and, eventually, support) for** **deprecated interfaces to be eliminated.**

## SEE ALSO

[**ldap**(3)](/ldap/3.md), [**ldap\_error**(3)](/ldap_error/3.md)

## ACKNOWLEDGEMENTS

**OpenLDAP Software** **is developed and maintained by The OpenLDAP Project \<http://www.openldap.org/\>.** **OpenLDAP Software** **is derived from the University of Michigan LDAP 3.3 Release.**
