NAME
open_config_file - Opens a configuration 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
FILE *open_config_file
(
const char *env_var,
const char *sub_dir,
const char *file_name,
const char *message_name
);
DESCRIPTION
This routine opens 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 it looks in one or more
directories which are likely to be local. For each of these, it appends the
user id. This list is currently set to "/space, /scratch, /net, /tmp". If
this search fails, then it is redone using the programmers uder id. Failing
all that, it looks in the user's home directory, and failing then, depending
on how the library was built, then a "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 except the current directory.
RETURNS
Either NO_ERROR, or ERROR, with an appropriate error message being set.
EXAMPLE
Suppose sub_dir 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). Futher suppose that
the user's id is "bob". 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 paramter message_name can be used to specify a name for the configuration
file to be used in composing an error message. Otherwise "configuration" is
used.
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
,
read_dbl_from_config_file
,
get_config_file