scf_entry_destroy_children (3scf) manual page

Table of Contents


scf_entry_create, scf_entry_handle, scf_entry_destroy, scf_entry_destroy_children, scf_entry_reset, scf_entry_add_value - create and manipulate transaction in the Service Configuration Facility


cc [ flag... ] file... -lscf [ library... ] #include <libscf.h>

scf_transaction_entry_t *scf_entry_create(scf_handle_t *handle);

scf_handle_t *scf_entry_handle(scf_transaction_entry_t *entry);

void scf_entry_destroy(scf_transaction_entry_t *entry);

void scf_entry_destroy_children(scf_transaction_entry_t *entry);

void scf_entry_reset(scf_transaction_entry_t *entry);

int scf_entry_add_value(scf_transaction_entry_t *entry, scf_value_t *value);


The scf_entry_create() function allocates a new transaction entry handle. The scf_entry_destroy() function destroys the transaction entry handle.

The scf_entry_handle() function retrieves the handle associated with entry.

A transaction entry represents a single action on a property in a property group. If an entry is added to a transaction using scf_transaction_property_new(3SCF) , scf_transaction_property_change(3SCF) , or scf_transaction_property_change_type(3SCF) , scf_entry_add_value() can be called zero or more times to set up the set of values for that property. Each value must be set and of a compatible type to the type associated with the entry. When later retrieved from the property, the values will have the type of the entry.

The scf_entry_reset() function resets a transaction entry, disassociating it from any transaction it is a part of (invalidating the transaction in the process), and disassociating any values that were added to it.

The scf_entry_destroy_children() function destroys all values associated with the transaction entry. The entry itself is not destroyed.

Return Values

Upon successful completion, scf_entry_create() returns a new scf_transaction_entry_t. Otherwise, it returns NULL.

Upon successful completion, scf_entry_handle() returns the handle associated with the transaction entry. Otherwise, it returns NULL.

Upon successful completion, scf_entry_add_value() returns 0. Otherwise, it returns -1.


The scf_entry_create() function will fail if:


The handle argument is NULL.


There is not enough memory to allocate an scf_transaction_entry_t.

The scf_entry_handle() function will fail if:


The handle associated with entry has been destroyed.

The scf_entry_add_value() function will fail if:


The value has been added to another entry.


The transaction entry is not associated with a transaction.


The value argument is not set, or the entry was added to the transaction using scf_transaction_property_delete(3SCF) .


The value and entry arguments are not derived from the same handle.


The type of the value argument does not match the type that was set using scf_transaction_property_new(), scf_transaction_property_change(), or scf_transaction_property_change_type().

The scf_error(3SCF) function can be used to retrieve the error value.


See attributes(5) for descriptions of the following attributes:

tab() allbox; cw(2.750000i)| cw(2.750000i) lw(2.750000i) lw(2.750000i). ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityEvolving MT-LevelSafe

See Also

libscf(3LIB) , scf_error(3SCF) , scf_transaction_property_change(3SCF) , scf_transaction_property_change_type(3SCF) ,

scf_transaction_property_delete(3SCF) ,
scf_transaction_property_new(3SCF) , scf_transaction_reset(3SCF) , attributes(5)

Table of Contents