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