Files
sics/doc/programmer/ini.tex

33 lines
2.5 KiB
TeX

\subsection{Initialisation file management}
This module supports initialisation files with a simple structure.
This is used to hold the internal SICS server options which are
installed with the SicsOption initialisation commands. All the file
handling stuff is dead code not used by SICS as of current. Any line
is intended to
contain one name value pair separated by an equlity sign. Lines beginning
with a \verb+#+ are treated as comments, other lines not conforming to the name =
value scheme are ignored. Another option (and the currently preferred one)
to get values into the initialisation database is to use a special command
SicsOption from the SICS initialisation file.
These initialisation files are manipulated through
the ifile module, implemented in ifile.h and ifile.c. The class in more
detail:
After reading the configuration options are stored in memory as a linked list with entries if the type shown below. \begin{verbatim}
typedef struct __IFileE
{
char *name;
char *value;
struct __IFileE *pNext;
} IPair;
\end{verbatim}
This datastructure is manipulated using the following functions:\begin{itemize}
\item {\bf IPair *IFReadConfigFile(FILE *fp) }, expects as input a pointer to the configuration file. Than the function will read the file and initialise the configuration linked list from the data found in the file. On success a pointer to the head of the linked list is returned which is to be used in further calls to the configuration management functions. On failure NULL is returned.
\item {\bf char *IFindOption(IPair *pList,char *name) }. Input is a pointer to a configuration list as returned by IFReadConfigFile and the name of the option requested (case sensitive). If this option exists a pointer to its value will be returned, else NULL. Never, ever, free the returned pointer as it belongs to this module.
\item {\bf IPair *IFAddOption(IPair *pList,char *name, char *value) } Adds a name value pair to the list specified as first parameter. Returns a pointer to the new list including the new name value pair on succes, else the old pointer specified as input.
\item {\bf int IFSaveOptions(IPair *pList,FILE *fp) }. Saves the options in the list to the file fp.
\item {\bf void IFDeleteOptions(IPair *pList) }. Use this to delete the list after use. The list pList is no longer valid after this call. Omission of this call will result in wasted memory.
\end{itemize}