NAME
read_dbl_from_config_file - Reads a number from a config file
SYNOPSIS
#include "l/l_config.h"
Example compile flags (system dependent):
-DLINUX_386 -DLINUX_386_P4
-I/home/kobus/include
-L/home/kobus/load/linux_386_p4 -L/usr/local/lib -L/usr/lib
-lKJB -llapack -lblas -lg2c -lXext -lX11
int read_dbl_from_config_file
(
double *value_ptr,
const char *env_var,
const char *directory,
const char *file_name,
const char *message_name,
char *config_file_name,
size_t config_file_name_size
);
DESCRIPTION
This routine reads a number from a configuration file, checking several
possible locations for the file. If the parameter "env_var" is not NULL, then
it first tries using this string as the configuration file name. Next it
looks for "file_name" in the current directory, then the user's home
directory, and, depending on how the library was built, then the "shared"
home directory and/or the programmer's home directory. If "directory" is not
NULL, then it is used as a sub-directory in all paths starting from a home
directory (i.e., all paths except the current directory).
The parameter message_name can be used to specify a name for the
configuration file to be used in error and verbose output messages. If
message_name is NULL, then "configuration" is used.
If the buffer config_file_name is not NULL, then the file name actually used
is copied into it. If it is used, then its size must be passed in via
config_file_name_size;
If file_name is the special name "off" (or "none" or "0"), then the above
does not apply. In this case, *value_ptr is set to DBL_NOT_SET, which is
guaranteed to be negative.
RETURNS
Either NO_ERROR, or ERROR, with an appropriate error message being set.
EXAMPLE
Suppose directory is "x" and file_name is "y". Also supposed that the
shared directory is "~kobus" (compiled in constant) and the programmer's
directory is "~kobus" (another compiled in constant). Then the following
files are tried in the order listed.
./y
/config_dir/bob/x/y
/config_dir/kobus/x/y
~/x/y
~kobus/x/y
~kobus/x/y
where config_dir is one of a number strings tried in sequence. Currently
those strings are work, net/v04/work, data, net/v05/data, space, and
net/v05/space,
The file name actually used is put into the buffer config_file_name whose
size must be passed in via max_len;
The result is put into *value_ptr.
DISCLAIMER
This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
AUTHOR
Kobus Barnard
DOCUMENTOR
Kobus Barnard
SEE ALSO
check_config_sub_dir
,
open_config_file
,
get_config_file