---
name: "vf_get_property"
section: "3"
platform: "linux"
package: "libvformat-dev"
version: "1.13-12"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/vf_get_property"
---

# vf\_get\_property(3)

vf\_get\_property()

## NAME

vf\_get\_property - vf\_get\_property()

## SYNOPSIS

**#include \<../vformat/vf\_iface.h\>**

**extern bool\_t vf\_get\_property**\
 **(**\
\
 	**VF\_PROP\_T \*\*pp\_prop,**\
\
 	**VF\_OBJECT\_T \*p\_object,**\
\
 	**vf\_get\_t ops,**\
\
 	**const char \*p\_group,**\
\
 	**const char \*p\_name,**\
\
 	**const char \*p\_qualifier,**\
\
 	**...**\
 **);**

## PARAMETERS

- **VF\_PROP\_T \*\*pp\_prop**

  Output pointer.

- **VF\_OBJECT\_T \*p\_object**

  Object to add to.

- **vf\_get\_t ops**

  Search flags.

- **const char \*p\_group**

  Group name if any.

- **const char \*p\_name**

  Name of tag.

- **const char \*p\_qualifier**

  First qualifier if any.

- **...**

  Subequent qualifiers.

## DESCRIPTION

Basic searching function locating elements of the VOBJECT by qualified name.  The function is a varargs function (like sprintf) and the list of arguments must be NULL terminated (hence the appearance of the p\_qualifier argument in the arglist).  Valid calls might be:

vf\_get\_property(&p\_out, p\_object, VFGP\_FIND, NULL, "N", NULL);\
 \- Find and return "N" properties.  If there are none, return FALSE.

Vf\_get\_property(&p\_out, p\_object, VFGP\_FIND, NULL, "TEL", "WORK", NULL);\
 \- Find and return "TEL" entries qualified by the "work" attribute (ie. Work phone numbers). If there are none, return FALSE.

Vf\_get\_property(&p\_out, p\_object, VFGP\_GET, NULL, "TEL", "WORK", NULL);\
 \- Find and return work phone number.  The entry is automatically added if not pre-existing.

Vf\_get\_property(&p\_out, p\_object, VFGP\_GET, NULL, "TEL", "WORK", NULL);\
 \- Find and return work phone numbers in the group identifier by the "ME" identifier.  The entry is automatically added if not pre-existing.

Vf\_get\_property(&p\_out, p\_object, VFGP\_FIND, "ME", "\*", NULL);\
 \- Effectively enumerates all entries in the "ME" group.

A pointer to the first property matching the search criteria is returned via the pp\_prop argument.  The search actually locates all such matches and pointer to subsequent entries (if there are \>1) may be found by calling the vf\_get\_next\_property() function.

The tags may occur in any order \_except\_ that the p\_name must be first.

Note that the VF\_PROP\_T returned by pp\_prop is an opaque type and the functions vf\_get\_prop\_xxxx() etc. Must be used to locate real "values".

Cached search results (the list enumerated by subsequent calls to the vf\_get\_next\_property() function) are maintained through the use of a a single internal pointer therefore this method is not thread safe.

## RETURNS

TRUE iff found/added successfully.  Ptr to prop returned via pp\_prop.

## SEE ALSO

[vf\_parse\_init(3)](/vf_parse_init/3.md), [vf\_parse\_text(3)](/vf_parse_text/3.md), [vf\_parse\_end(3)](/vf_parse_end/3.md), [vf\_read\_file(3)](/vf_read_file/3.md), [vf\_write\_file(3)](/vf_write_file/3.md), [vf\_get\_next\_object(3)](/vf_get_next_object/3.md), [vf\_create\_object(3)](/vf_create_object/3.md), [vf\_get\_object\_type(3)](/vf_get_object_type/3.md), [vf\_get\_property\_ex(3)](/vf_get_property_ex/3.md), [vf\_get\_next\_property(3)](/vf_get_next_property/3.md), [vf\_get\_prop\_value(3)](/vf_get_prop_value/3.md), [vf\_set\_prop\_value(3)](/vf_set_prop_value/3.md), [vf\_get\_prop\_value\_string(3)](/vf_get_prop_value_string/3.md), [vf\_get\_prop\_name\_string(3)](/vf_get_prop_name_string/3.md), [vf\_set\_prop\_name\_string(3)](/vf_set_prop_name_string/3.md), [vf\_get\_prop\_name(3)](/vf_get_prop_name/3.md), [vf\_get\_prop\_value\_object(3)](/vf_get_prop_value_object/3.md), [vf\_set\_prop\_value\_object(3)](/vf_set_prop_value_object/3.md), [vf\_set\_prop\_value\_string(3)](/vf_set_prop_value_string/3.md), [vf\_set\_prop\_value\_base64(3)](/vf_set_prop_value_base64/3.md), [vf\_get\_prop\_value\_base64(3)](/vf_get_prop_value_base64/3.md), [vf\_set\_property\_from\_file(3)](/vf_set_property_from_file/3.md), [vf\_delete\_object(3)](/vf_delete_object/3.md), [vf\_delete\_prop(3)](/vf_delete_prop/3.md), [vf\_find\_prop\_qual\_index(3)](/vf_find_prop_qual_index/3.md), [vf\_is\_modified(3)](/vf_is_modified/3.md), [vf\_find\_charset(3)](/vf_find_charset/3.md), [vf\_date\_string\_to\_time(3)](/vf_date_string_to_time/3.md), [vf\_period\_string\_to\_time(3)](/vf_period_string_to_time/3.md), [vf\_period\_time\_to\_string(3)](/vf_period_time_to_string/3.md), [vf\_set\_prop\_value\_time(3)](/vf_set_prop_value_time/3.md), [vf\_get\_prop\_value\_time(3)](/vf_get_prop_value_time/3.md)
