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:
- SIGEV_SIGNAL
- SIGEV_SIGNAL_CODE
- SIGEV_SIGNAL_THREAD
- SIGEV_PULSE
- SIGEV_INTR
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 |