ldap_get_values, ldap_get_values_len, ldap_count_values — LDAP attribute value handling routines
#include <ldap.h>
| char
            **ldap_get_values( | LDAP *ld, | 
| LDAPMessage *entry, | |
| char *attr ); | 
| struct berval
            **ldap_get_values_len( | LDAP *ld, | 
| LDAPMessage *entry, | |
| char *attr ); | 
| int
            ldap_count_values( | char **vals ); | 
| int
            ldap_count_values_len( | struct berval **vals ); | 
| void
            ldap_value_free( | char **vals ); | 
| void
            ldap_value_free_len( | struct berval **vals ); | 
These routines are used to retrieve and manipulate
      attribute values from an LDAP entry as returned by ldap_first_entry(3) or
      ldap_next_entry(3).
      ldap_get_values() takes the
      entry and the
      attribute attr whose
      values are desired and returns a NULL-terminated array of the
      attribute's values. attr may be an attribute type
      as returned from ldap_first_attribute(3) or
      ldap_next_attribute(3), or
      if the attribute type is known it can simply be given.
The number of values in the array can be counted by
      calling ldap_count_values(). The array
      of values returned can be freed by calling ldap_value_free().
If the attribute values are binary in nature, and thus not
      suitable to be returned as an array of char *'s, the
      ldap_get_values_len() routine
      can be used instead. It takes the same parameters as
      ldap_get_values(), but returns
      a NULL-terminated array of pointers to berval structures,
      each containing the length of and a pointer to a value.
The number of values in the array can be counted by
      calling ldap_count_values_len(). The array
      of values returned can be freed by calling ldap_value_free_len().
If an error occurs in ldap_get_values() or ldap_get_values_len(), NULL is
      returned and the ld_errno field
      in the ld parameter
      is set to indicate the error. See ldap_error(3) for a
      description of possible error codes.
These routines dynamically allocate memory which the caller must free using the supplied routines.
OpenLDAP Software is developed and maintained by The OpenLDAP Project <http://www.openldap.org/>. OpenLDAP Software is derived from University of Michigan LDAP 3.3 Release.