void dtpool_c ( ConstSpiceChar * name,
SpiceBoolean * found,
SpiceInt * n,
SpiceChar type [1] )
Return the data about a kernel pool variable.
KERNEL
CONSTANTS
FILES
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
name I Name of the variable whose value is to be returned.
found O True if variable is in pool.
n O Number of values returned for name.
type O Type of the variable: 'C', 'N', or 'X'
name is the name of the variable whose values are to be
returned.
found is SPICETRUE if the variable is in the pool;
SPICEFALSE if it is not.
n is the number of values associated with name.
If name is not present in the pool n will be returned
with the value 0.
type is a single character indicating the type of the variable
associated with name.
'C' if the data is character data
'N' if the data is numeric.
'X' if there is no variable name in the pool.
None.
1) If the name requested is not in the kernel pool, found
will be set to SPICEFALSE, n to zero and type to 'X'.
2) If the input string pointer is null, the error SPICE(NULLPOINTER)
will be signaled.
3) If the input string has length zero, the error SPICE(EMPTYSTRING)
will be signaled.
None.
This routine allows you to determine whether or not a kernel
pool variable is present and to determine its size and type
if it is.
1) The following program demonstrates how to determine the
properties of a stored kernel variable. The program reads
the name of a text kernel from the command line and loads
the kernel. The program then prompts for the name of a
kernel variable. If the variable is present in the kernel
pool, the dimension and type of the variable are displayed.
The output shown below was obtained using the Cassini
frame kernel
cas_v40.tf
which is available in the PDS Cassini archive.
Example code begins here.
#include <stdio.h>
#include "SpiceUsr.h"
int main( int argc, char **argv )
{
/.
Local constants
./
#define KVNMLN 33
/.
Local variables
./
SpiceBoolean found;
SpiceChar * fname;
SpiceChar type [ 1 ];
SpiceChar varnam [ KVNMLN ];
SpiceInt n;
/.
Load the kernel specified on the command line.
./
fname = argv[1];
furnsh_c ( fname );
while ( SPICETRUE )
{
prompt_c ( "Enter name of kernel variable > ",
KVNMLN, varnam );
dtpool_c ( varnam, &found, &n, type );
if ( found )
{
printf ( "\n"
"Properties of variable %s:\n"
"\n"
" Size: %d\n",
varnam,
n );
if ( type[0] == 'C' )
{
printf ( " Type: Character\n" );
}
else
{
printf ( " Type: Numeric\n" );
}
}
else
{
printf ( "%s is not present in the kernel pool.\n", varnam );
}
printf ( "\n" );
}
return(0);
}
When this program was executed on a PC/Linux/gcc platform, the
output was:
Enter name of kernel variable > FRAME_-82104_NAME
Properties of variable FRAME_-82104_NAME:
Size: 1
Type: Character
Enter name of kernel variable > TKFRAME_-82104_ANGLES
Properties of variable TKFRAME_-82104_ANGLES:
Size: 3
Type: Numeric
None.
None.
N.J. Bachman (JPL)
W.L. Taber (JPL)
-CSPICE Version 1.2.0, 04-JUN-2014 (NJB)
Header example code fragment was replaced with
a complete program.
-CSPICE Version 1.1.0, 17-OCT-1999 (NJB)
Local type logical variable now used for found flag used in
interface of dtpool_.
-CSPICE Version 1.0.0, 10-MAR-1999 (NJB) (WLT)
return summary information about a kernel pool variable
Link to routine dtpool_c source file dtpool_c.c
|