LDAP\_FIRST\_ENTRY(3) Library Functions Manual LDAP\_FIRST\_ENTRY(3)

# [NAME](#NAME)

ldap\_first\_entry, ldap\_next\_entry, ldap\_count\_entries - LDAP result entry parsing and counting routines

# [LIBRARY](#LIBRARY)

OpenLDAP LDAP (libldap, -lldap)

# [SYNOPSIS](#SYNOPSIS)

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

```
int ldap_count_entries( LDAP *ld, LDAPMessage *result )
```

```
LDAPMessage *ldap_first_entry( LDAP *ld, LDAPMessage *result )
```

```
LDAPMessage *ldap_next_entry( LDAP *ld, LDAPMessage *entry )
```

# [DESCRIPTION](#DESCRIPTION)

These routines are used to parse results received from [**ldap\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_result.3) or the synchronous LDAP search operation routines [**ldap\_search\_s**(3)](/man/enterprise-packages/openldap-2.6/ldap_search_s.3) and [**ldap\_search\_st**(3)](/man/enterprise-packages/openldap-2.6/ldap_search_st.3).

The **ldap\_first\_entry()** routine is used to retrieve the first entry in a chain of search results. It takes the *result* as returned by a call to [**ldap\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_result.3) or [**ldap\_search\_s**(3)](/man/enterprise-packages/openldap-2.6/ldap_search_s.3) or [**ldap\_search\_st**(3)](/man/enterprise-packages/openldap-2.6/ldap_search_st.3) and returns a pointer to the first entry in the result.

This pointer should be supplied on a subsequent call to **ldap\_next\_entry()** to get the next entry, the result of which should be supplied to the next call to **ldap\_next\_entry()**, etc. **ldap\_next\_entry()** will return NULL when there are no more entries. The entries returned from these calls are used in calls to the routines described in [**ldap\_get\_dn**(3)](/man/enterprise-packages/openldap-2.6/ldap_get_dn.3), [**ldap\_first\_attribute**(3)](/man/enterprise-packages/openldap-2.6/ldap_first_attribute.3), [**ldap\_get\_values**(3)](/man/enterprise-packages/openldap-2.6/ldap_get_values.3), etc.

A count of the number of entries in the search result can be obtained by calling **ldap\_count\_entries()**.

# [ERRORS](#ERRORS)

If an error occurs in **ldap\_first\_entry()** or **ldap\_next\_entry()**, NULL is returned and the ld\_errno field in the *ld* parameter is set to indicate the error. If an error occurs in **ldap\_count\_entries()**, -1 is returned, and **ld\_errno** is set appropriately. See [**ldap\_error**(3)](/man/enterprise-packages/openldap-2.6/ldap_error.3) for a description of possible error codes.

# [SEE ALSO](#SEE_ALSO)

[**ldap**(3)](/man/enterprise-packages/openldap-2.6/ldap.3), [**ldap\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_result.3), [**ldap\_search**(3)](/man/enterprise-packages/openldap-2.6/ldap_search.3), [**ldap\_first\_attribute**(3)](/man/enterprise-packages/openldap-2.6/ldap_first_attribute.3), [**ldap\_get\_values**(3)](/man/enterprise-packages/openldap-2.6/ldap_get_values.3), [**ldap\_get\_dn**(3)](/man/enterprise-packages/openldap-2.6/ldap_get_dn.3)

# [ACKNOWLEDGEMENTS](#ACKNOWLEDGEMENTS)

**OpenLDAP Software** is developed and maintained by The OpenLDAP Project &lt;http://www.openldap.org/&gt;. **OpenLDAP Software** is derived from the University of Michigan LDAP 3.3 Release.

2026/10/21 OpenLDAP 2.6.16

---

Document: ldap_next_entry(3) from openldap-2.6 2.6.16-r2 (Chainguard OS)
Source: https://git.openldap.org/openldap/openldap.git
