NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | USAGE | ATTRIBUTES | SEE ALSO | NOTES
cc [ flag ... ] file ... -lxfn [ library ... ] #include <xfn/xfn.h>FN_attribute_t *fn_attribute_create(constFN_identifier_t *attribute_id, const FN_identifier_t *attribute_syntax);
An attribute has an attribute identifier, a syntax, and a set of distinct values. Each value is a sequence of octets. The operations associated with objects of type FN_attribute_t allow the construction, destruction, and manipulation of an attribute and its value set.
The attribute identifier and its syntax are specified using an FN_identifier_t . fn_attribute_create() creates a new attribute object with the given identifier and syntax, and an empty set of values. fn_attribute_destroy() releases the storage associated with attr . fn_attribute_copy() returns a copy of the object pointed to by attr . fn_attribute_assign() makes a copy of the attribute object pointed to by src and assigns it to dst , releasing any old contents of dst . A pointer to the same object as dst is returned.
fn_attribute_identifier() returns the attribute identifier of attr . fn_attribute_syntax() returns the attribute syntax of attr . fn_attribute_valuecount() returns the number of attribute values in attr .
fn_attribute_first() and fn_attribute_next() are used to enumerate the values of an attribute. Enumeration of the values of an attribute may return the values in any order. fn_attribute_first() returns an attribute value from attr and sets the iteration marker iter_pos . Subsequent calls to fn_attribute_next() returns the next attribute value identified by iter_pos and advances iter_pos . Adding or removing values from an attribute invalidates any iteration markers that the caller holds.
fn_attribute_add() adds a new value attribute_value to attr . The operation succeeds (but no change is made) if attribute_value is already in attr and exclusive is 0 ; the operation fails if attribute_value is already in attr and exclusive is non-zero.
fn_attribute_remove() removes attribute_value from attr . The operation succeeds even if attribute_value is not amongst attr 's values.
fn_attribute_first() returns 0 if the attribute contains no values. fn_attribute_next() returns 0 if there are no more values to be returned in the attribute (as identified by the iteration marker) or if the iteration marker is invalid.
fn_attribute_add() and fn_attribute_remove() return 1 if the operation succeeds, 0 if it fails.
Manipulation of attributes using the operations described in this manual page does not affect their representation in the underlying naming system. Changes to attributes in the underlying naming system can only be effected through the use of the interfaces described in xfn_attributes(3XFN) .
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
MT-Level | MT-Safe |
FN_attrset_t(3XFN) , FN_attrvalue_t(3XFN) , FN_identifier_t(3XFN) , fn_attr_get(3XFN) , fn_attr_modify(3XFN) , xfn(3XFN) , xfn_attributes(3XFN) , attributes(5)
The implementation of XFN in this Solaris release is based on the X/Open preliminary specification. It is likely that there will be minor changes to these interfaces to reflect changes in the final version of this specification. The next minor release of Solaris will offer binary compatibility for applications developed using the current interfaces. As the interfaces evolve toward standardization, it is possible that future releases of Solaris will require minor source code changes to applications that have been developed against the preliminary specification.
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | USAGE | ATTRIBUTES | SEE ALSO | NOTES