NAME |LIBRARY |SYNOPSIS |DESCRIPTION |ERRORS |NOTES |SEE ALSO |ACKNOWLEDGEMENTS |COLOPHON | |
LDAP_FIRST_ATTRIBUTE(3) Library Functions ManualLDAP_FIRST_ATTRIBUTE(3)ldap_first_attribute, ldap_next_attribute - step through LDAP entry attributes
OpenLDAP LDAP (libldap, -lldap)
#include <ldap.h>char *ldap_first_attribute(LDAP *ld, LDAPMessage *entry, BerElement **berptr )char *ldap_next_attribute(LDAP *ld, LDAPMessage *entry, BerElement *ber )int ldap_get_attribute_ber(LDAP *ld, LDAPMessage *entry, BerElement *ber,BerValue *attr, BerVarray *vals )
Theldap_first_attribute(),ldap_next_attribute()andldap_get_attribute_ber()routines are used to step through the attributes in an LDAP entry.ldap_first_attribute()takes anentry as returned byldap_first_entry(3) orldap_next_entry(3) and returns a pointer to character string containing the first attribute description in the entry.ldap_next_attribute()returns the next attribute description in the entry. It also returns, inberptr, a pointer to a BerElement it has allocated to keep track of its current position. This pointer should be passed to subsequent calls toldap_next_attribute()and is used to effectively step through the entry's attributes. The caller is solely responsible for freeing the BerElement pointed to byberptr when it is no longer needed by callingber_free(3). When callingber_free(3) in this instance, be sure the second argument is 0. The attribute names returned are suitable for inclusion in a call toldap_get_values(3) to retrieve the attribute's values. Theldap_get_attribute_ber()routine allows one to iterate over all attributes in-place, without allocating memory to hold text for the attribute name or its values, if requested. The use case is similar toldap_next_attribute()except that the attribute name is returned intoattr and, ifvals is non-NULL, the list of values is stored there. Both point into the LDAP message and remain valid only while the entry is valid. The caller is still responsible for freeingvals withldap_memfree(3), if used.
If an error occurs, NULL is returned and the ld_errno field in theld parameter is set to indicate the error. Seeldap_error(3) for a description of possible error codes.
Theldap_first_attribute()andldap_next_attribute()return dynamically allocated memory that must be freed by the caller vialdap_memfree(3). Forldap_get_attribute_ber(), only the actualvals pointer needs to be freed withldap_memfree(3), other data is accounted for as part ofber.
ldap(3),ldap_first_entry(3),ldap_get_values(3),ldap_error(3)
OpenLDAP Softwareis developed and maintained by The OpenLDAP Project <http://www.openldap.org/>.OpenLDAP Softwareis derived from the University of Michigan LDAP 3.3 Release.
This page is part of theOpenLDAP (an open source implementation of the Lightweight Directory Access Protocol) project. Information about the project can be found at ⟨http://www.openldap.org/⟩. If you have a bug report for this manual page, see ⟨http://www.openldap.org/its/⟩. This page was obtained from the project's upstream Git repository ⟨https://git.openldap.org/openldap/openldap.git⟩ on 2025-08-11. (At that time, the date of the most recent commit that was found in the repository was 2025-08-05.) If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up-to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgOpenLDAP LDVERSION RELEASEDATELDAP_FIRST_ATTRIBUTE(3)Pages that refer to this page:ldap(3), ldap_first_entry(3), ldap_get_values(3), ldap_sync(3)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |