ds_create()

Create a data server variable

Synopsis:

#include <ds.h>

int ds_create( ds_t dsdes,
               const char * variable_name,
               char flags, 
               struct sigevent * sigevent );

Arguments:

dsdes
A data server descriptor returned by ds_register().
variable_name
The name of the variable that you want to create.

All variables are global, so only one instance of the variable can exist in the data server process. The maximum length of a variable name is 60 characters.

flags
Flags that specify the variable's behavior:
  • DS_PERM—don't delete the variable when the application that created it terminates. The variable is removed when the data server process terminates, or if the flag is turned off after the application that created the variable terminates.

If flags is 0, the variable is removed if you call ds_deregister(), or the process terminates.

sigevent
A pointer to a sigevent structure that describes a proxy or signal to be sent to the external application that created the variable if the data referenced by the variable changes; see below.

Library:

libds

Use the -l ds option to qcc to link against this library.

Description:

The ds_create() function creates a variable, whose name is given by variable_name, on the data server identified by dsdes.

If the data referenced by variable_name changes, a proxy or signal, described in the sigevent structure, can be sent to the external application that created variable_name (see ds_set()).

We recommend the following event types for use with this function:

Returns:

0
Success.
-1
An error occurred (errno is set).

Errors:

EBADF
Invalid file descriptor dsdes.
EEXIST
The variable name already exists in the data server.
ENOMEM
Not enough memory to create the variable or initialize the data.

Classification:

QNX Neutrino

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes