\doxysection{include/sphinxbase/err.h File Reference}
\label{err_8h}\index{include/sphinxbase/err.h@{include/sphinxbase/err.h}}


Implementation of logging routines.  


{\ttfamily \#include $<$stdarg.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$sphinxbase/sphinxbase\+\_\+export.\+h$>$}\newline
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ E\+\_\+\+FATAL}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}FATAL\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+die\+\_\+error
\begin{DoxyCompactList}\small\item\em Exit with non-\/zero status after error message. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+FATAL\+\_\+\+SYSTEM}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}SYSTEM\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+fatal\+\_\+sys\+\_\+error
\begin{DoxyCompactList}\small\item\em Print error text; Call perror("{}"{}); exit(errno);. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+WARN\+\_\+\+SYSTEM}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}SYSTEM\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+sys\+\_\+error
\begin{DoxyCompactList}\small\item\em Print error text; Call perror("{}"{});. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+ERROR\+\_\+\+SYSTEM}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}SYSTEM\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+sys\+\_\+error
\begin{DoxyCompactList}\small\item\em Print error text; Call perror("{}"{});. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+INFO}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}INFO"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info
\begin{DoxyCompactList}\small\item\em Print logging information to standard error stream. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+INFOCONT}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info
\begin{DoxyCompactList}\small\item\em Print logging information without header, to standard error stream. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+INFO\+\_\+\+NOFN}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header\+\_\+wofn("{}INFO"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info
\begin{DoxyCompactList}\small\item\em Print logging information without filename. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+WARN}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}WARNING"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+warn
\begin{DoxyCompactList}\small\item\em Print warning information to standard error stream. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+ERROR}~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}ERROR"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+warn
\begin{DoxyCompactList}\small\item\em Print error message to standard error stream. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+DEBUG}(level,  x)
\begin{DoxyCompactList}\small\item\em Print debugging information to standard error stream. \end{DoxyCompactList}\item 
\#define \textbf{ E\+\_\+\+DEBUGCONT}(level,  x)
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+pr\+\_\+header} (char const $\ast$file, long line, char const $\ast$msg)
\item 
\label{err_8h_a173ee0173de4543e08d9d7a38ce18b88} 
SPHINXBASE\+\_\+\+EXPORT void {\bfseries \+\_\+\+E\+\_\+\+\_\+pr\+\_\+debug\+\_\+header} (char const $\ast$file, long line, int level)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header} (char const $\ast$file, long line, char const $\ast$tag)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header\+\_\+wofn} (char const $\ast$msg)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+pr\+\_\+warn} (char const $\ast$fmt,...)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+pr\+\_\+info} (char const $\ast$fmt,...)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+die\+\_\+error} (char const $\ast$fmt,...)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+abort\+\_\+error} (char const $\ast$fmt,...)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+sys\+\_\+error} (char const $\ast$fmt,...)
\item 
SPHINXBASE\+\_\+\+EXPORT void \textbf{ \+\_\+\+E\+\_\+\+\_\+fatal\+\_\+sys\+\_\+error} (char const $\ast$fmt,...)
\item 
SPHINXBASE\+\_\+\+EXPORT FILE $\ast$ \textbf{ err\+\_\+set\+\_\+logfp} (FILE $\ast$logfp)
\begin{DoxyCompactList}\small\item\em Direct all logging to a given filehandle. \end{DoxyCompactList}\item 
SPHINXBASE\+\_\+\+EXPORT FILE $\ast$ \textbf{ err\+\_\+get\+\_\+logfp} (void)
\begin{DoxyCompactList}\small\item\em Get the current logging filehandle. \end{DoxyCompactList}\item 
SPHINXBASE\+\_\+\+EXPORT int \textbf{ err\+\_\+set\+\_\+logfile} (char const $\ast$file)
\begin{DoxyCompactList}\small\item\em Append all log messages to a given file. \end{DoxyCompactList}\item 
SPHINXBASE\+\_\+\+EXPORT int \textbf{ err\+\_\+set\+\_\+debug\+\_\+level} (int level)
\begin{DoxyCompactList}\small\item\em Set debugging verbosity level. \end{DoxyCompactList}\item 
SPHINXBASE\+\_\+\+EXPORT int \textbf{ err\+\_\+get\+\_\+debug\+\_\+level} (void)
\begin{DoxyCompactList}\small\item\em Get debugging verbosity level. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Implementation of logging routines. 

Logging, warning, debug and error message output funtionality is provided in this file. Sphinxbase defines several level of logging messages -\/ INFO, WARNING, ERROR, FATAL. By default output goes to standard error output.

Logging is implemented through macros. They take same arguments as printf\+: format string and values. By default source file name and source line are prepended to the message. Log output could be redirected to any file using \doxyref{err\+\_\+set\+\_\+logfp()}{p.}{err_8h_ae3d449c3bb38991cab2f2a00d5c5f1b3} and \doxyref{err\+\_\+set\+\_\+logfile()}{p.}{err_8h_aa605de73499066475ec4cfb03e4c5a20} functions. To disable logging in your application, call err\+\_\+set\+\_\+logfp(\+NULL).

It\textquotesingle{}s possible to log multiline info messages, to do that you need to start message with E\+\_\+\+INFO and output other lines with E\+\_\+\+INFOCONT. 

Definition in file \textbf{ err.\+h}.



\doxysubsection{Macro Definition Documentation}
\label{err_8h_af46f94d0e21f22f1153f8f1cd9a372d6} 
\index{err.h@{err.h}!E\_DEBUG@{E\_DEBUG}}
\index{E\_DEBUG@{E\_DEBUG}!err.h@{err.h}}
\doxysubsubsection{E\_DEBUG}
{\footnotesize\ttfamily \#define E\+\_\+\+DEBUG(\begin{DoxyParamCaption}\item[{}]{level,  }\item[{}]{x }\end{DoxyParamCaption})}



Print debugging information to standard error stream. 

This will only print a message if\+:
\begin{DoxyEnumerate}
\item Debugging is enabled at compile time
\item The debug level is greater than or equal to {\itshape level} 
\end{DoxyEnumerate}

Note that for portability reasons the format and arguments must be enclosed in an extra set of parentheses. 

Definition at line \textbf{ 212} of file \textbf{ err.\+h}.

\label{err_8h_a7e8c4b068434a0424751fc2d2c457807} 
\index{err.h@{err.h}!E\_DEBUGCONT@{E\_DEBUGCONT}}
\index{E\_DEBUGCONT@{E\_DEBUGCONT}!err.h@{err.h}}
\doxysubsubsection{E\_DEBUGCONT}
{\footnotesize\ttfamily \#define E\+\_\+\+DEBUGCONT(\begin{DoxyParamCaption}\item[{}]{level,  }\item[{}]{x }\end{DoxyParamCaption})}



Definition at line \textbf{ 213} of file \textbf{ err.\+h}.

\label{err_8h_a5f7b2f58f5a663a6bdd51f197ae21993} 
\index{err.h@{err.h}!E\_ERROR@{E\_ERROR}}
\index{E\_ERROR@{E\_ERROR}!err.h@{err.h}}
\doxysubsubsection{E\_ERROR}
{\footnotesize\ttfamily \#define E\+\_\+\+ERROR~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}ERROR"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+warn}



Print error message to standard error stream. 



Definition at line \textbf{ 169} of file \textbf{ err.\+h}.

\label{err_8h_a54ffbfe898d74595c586a1f48f32ef03} 
\index{err.h@{err.h}!E\_ERROR\_SYSTEM@{E\_ERROR\_SYSTEM}}
\index{E\_ERROR\_SYSTEM@{E\_ERROR\_SYSTEM}!err.h@{err.h}}
\doxysubsubsection{E\_ERROR\_SYSTEM}
{\footnotesize\ttfamily \#define E\+\_\+\+ERROR\+\_\+\+SYSTEM~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}SYSTEM\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+sys\+\_\+error}



Print error text; Call perror("{}"{});. 



Definition at line \textbf{ 142} of file \textbf{ err.\+h}.

\label{err_8h_a1a4495946ab2449d61108fe829a94613} 
\index{err.h@{err.h}!E\_FATAL@{E\_FATAL}}
\index{E\_FATAL@{E\_FATAL}!err.h@{err.h}}
\doxysubsubsection{E\_FATAL}
{\footnotesize\ttfamily \#define E\+\_\+\+FATAL~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}FATAL\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+die\+\_\+error}



Exit with non-\/zero status after error message. 



Definition at line \textbf{ 127} of file \textbf{ err.\+h}.

\label{err_8h_a5229a1d58f5f5e69963a8d038ff5bc3e} 
\index{err.h@{err.h}!E\_FATAL\_SYSTEM@{E\_FATAL\_SYSTEM}}
\index{E\_FATAL\_SYSTEM@{E\_FATAL\_SYSTEM}!err.h@{err.h}}
\doxysubsubsection{E\_FATAL\_SYSTEM}
{\footnotesize\ttfamily \#define E\+\_\+\+FATAL\+\_\+\+SYSTEM~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}SYSTEM\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+fatal\+\_\+sys\+\_\+error}



Print error text; Call perror("{}"{}); exit(errno);. 



Definition at line \textbf{ 132} of file \textbf{ err.\+h}.

\label{err_8h_ac3c705943d946708cea0a1443be1c853} 
\index{err.h@{err.h}!E\_INFO@{E\_INFO}}
\index{E\_INFO@{E\_INFO}!err.h@{err.h}}
\doxysubsubsection{E\_INFO}
{\footnotesize\ttfamily \#define E\+\_\+\+INFO~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}INFO"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info}



Print logging information to standard error stream. 



Definition at line \textbf{ 147} of file \textbf{ err.\+h}.

\label{err_8h_ad95ccef073dd6f3c81c84e6aedca1f16} 
\index{err.h@{err.h}!E\_INFO\_NOFN@{E\_INFO\_NOFN}}
\index{E\_INFO\_NOFN@{E\_INFO\_NOFN}!err.h@{err.h}}
\doxysubsubsection{E\_INFO\_NOFN}
{\footnotesize\ttfamily \#define E\+\_\+\+INFO\+\_\+\+NOFN~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header\+\_\+wofn("{}INFO"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info}



Print logging information without filename. 



Definition at line \textbf{ 158} of file \textbf{ err.\+h}.

\label{err_8h_ae5a17ac5be8c738d3d977b1bea2d4538} 
\index{err.h@{err.h}!E\_INFOCONT@{E\_INFOCONT}}
\index{E\_INFOCONT@{E\_INFOCONT}!err.h@{err.h}}
\doxysubsubsection{E\_INFOCONT}
{\footnotesize\ttfamily \#define E\+\_\+\+INFOCONT~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+info}



Print logging information without header, to standard error stream. 



Definition at line \textbf{ 153} of file \textbf{ err.\+h}.

\label{err_8h_a6a794bec721b555ac1f2167f9e12f662} 
\index{err.h@{err.h}!E\_WARN@{E\_WARN}}
\index{E\_WARN@{E\_WARN}!err.h@{err.h}}
\doxysubsubsection{E\_WARN}
{\footnotesize\ttfamily \#define E\+\_\+\+WARN~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}WARNING"{}),\+\_\+\+E\+\_\+\+\_\+pr\+\_\+warn}



Print warning information to standard error stream. 



Definition at line \textbf{ 164} of file \textbf{ err.\+h}.

\label{err_8h_a63de511eaca101291914f701e67c5c44} 
\index{err.h@{err.h}!E\_WARN\_SYSTEM@{E\_WARN\_SYSTEM}}
\index{E\_WARN\_SYSTEM@{E\_WARN\_SYSTEM}!err.h@{err.h}}
\doxysubsubsection{E\_WARN\_SYSTEM}
{\footnotesize\ttfamily \#define E\+\_\+\+WARN\+\_\+\+SYSTEM~\+\_\+\+E\+\_\+\+\_\+pr\+\_\+header(\+\_\+\+\_\+\+FILE\+\_\+\+\_\+, \+\_\+\+\_\+\+LINE\+\_\+\+\_\+, "{}SYSTEM\+\_\+\+ERROR"{}),\+\_\+\+E\+\_\+\+\_\+sys\+\_\+error}



Print error text; Call perror("{}"{});. 



Definition at line \textbf{ 137} of file \textbf{ err.\+h}.



\doxysubsection{Function Documentation}
\label{err_8h_a0cdeb87987f0c30cd0c99826f9a1f7a8} 
\index{err.h@{err.h}!\_E\_\_abort\_error@{\_E\_\_abort\_error}}
\index{\_E\_\_abort\_error@{\_E\_\_abort\_error}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_abort\_error()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+abort\+\_\+error (\begin{DoxyParamCaption}\item[{char const $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Definition at line \textbf{ 349} of file \textbf{ err.\+c}.

\label{err_8h_ae2149bb7cde661a9bee0bdaaea7fab2d} 
\index{err.h@{err.h}!\_E\_\_die\_error@{\_E\_\_die\_error}}
\index{\_E\_\_die\_error@{\_E\_\_die\_error}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_die\_error()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+die\+\_\+error (\begin{DoxyParamCaption}\item[{char const $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Definition at line \textbf{ 283} of file \textbf{ err.\+c}.

\label{err_8h_a39faf53d575084585f79fe685943e95a} 
\index{err.h@{err.h}!\_E\_\_fatal\_sys\_error@{\_E\_\_fatal\_sys\_error}}
\index{\_E\_\_fatal\_sys\_error@{\_E\_\_fatal\_sys\_error}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_fatal\_sys\_error()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+fatal\+\_\+sys\+\_\+error (\begin{DoxyParamCaption}\item[{char const $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Definition at line \textbf{ 304} of file \textbf{ err.\+c}.

\label{err_8h_a96379bbd8a6c62698d166e5d12f3370d} 
\index{err.h@{err.h}!\_E\_\_pr\_header@{\_E\_\_pr\_header}}
\index{\_E\_\_pr\_header@{\_E\_\_pr\_header}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_pr\_header()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+pr\+\_\+header (\begin{DoxyParamCaption}\item[{char const $\ast$}]{file,  }\item[{long}]{line,  }\item[{char const $\ast$}]{msg }\end{DoxyParamCaption})}



Definition at line \textbf{ 218} of file \textbf{ err.\+c}.

\label{err_8h_a04fbf9d2c44e4e72f64cd3e2f5a24c38} 
\index{err.h@{err.h}!\_E\_\_pr\_info@{\_E\_\_pr\_info}}
\index{\_E\_\_pr\_info@{\_E\_\_pr\_info}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_pr\_info()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+pr\+\_\+info (\begin{DoxyParamCaption}\item[{char const $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Definition at line \textbf{ 267} of file \textbf{ err.\+c}.

\label{err_8h_a583592f006ae14756c0c4812048c9b5f} 
\index{err.h@{err.h}!\_E\_\_pr\_info\_header@{\_E\_\_pr\_info\_header}}
\index{\_E\_\_pr\_info\_header@{\_E\_\_pr\_info\_header}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_pr\_info\_header()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header (\begin{DoxyParamCaption}\item[{char const $\ast$}]{file,  }\item[{long}]{line,  }\item[{char const $\ast$}]{tag }\end{DoxyParamCaption})}



Definition at line \textbf{ 234} of file \textbf{ err.\+c}.

\label{err_8h_abb0389e05db688aee439b339f7f6ed89} 
\index{err.h@{err.h}!\_E\_\_pr\_info\_header\_wofn@{\_E\_\_pr\_info\_header\_wofn}}
\index{\_E\_\_pr\_info\_header\_wofn@{\_E\_\_pr\_info\_header\_wofn}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_pr\_info\_header\_wofn()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+pr\+\_\+info\+\_\+header\+\_\+wofn (\begin{DoxyParamCaption}\item[{char const $\ast$}]{msg }\end{DoxyParamCaption})}



Definition at line \textbf{ 205} of file \textbf{ err.\+c}.

\label{err_8h_a3c2a4f988b27b2fa9baaa8ecd3f1e61f} 
\index{err.h@{err.h}!\_E\_\_pr\_warn@{\_E\_\_pr\_warn}}
\index{\_E\_\_pr\_warn@{\_E\_\_pr\_warn}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_pr\_warn()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+pr\+\_\+warn (\begin{DoxyParamCaption}\item[{char const $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Definition at line \textbf{ 251} of file \textbf{ err.\+c}.

\label{err_8h_a750133ab0eeba2bceba2a4054469857b} 
\index{err.h@{err.h}!\_E\_\_sys\_error@{\_E\_\_sys\_error}}
\index{\_E\_\_sys\_error@{\_E\_\_sys\_error}!err.h@{err.h}}
\doxysubsubsection{\_E\_\_sys\_error()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT void \+\_\+\+E\+\_\+\+\_\+sys\+\_\+error (\begin{DoxyParamCaption}\item[{char const $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Definition at line \textbf{ 330} of file \textbf{ err.\+c}.

\label{err_8h_a1500dc011016aa15244d0d7f2fe66a7e} 
\index{err.h@{err.h}!err\_get\_debug\_level@{err\_get\_debug\_level}}
\index{err\_get\_debug\_level@{err\_get\_debug\_level}!err.h@{err.h}}
\doxysubsubsection{err\_get\_debug\_level()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT int err\+\_\+get\+\_\+debug\+\_\+level (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get debugging verbosity level. 

Note that debugging messages are only enabled when compiled with -\/DDEBUG. 

Definition at line \textbf{ 74} of file \textbf{ err.\+c}.

\label{err_8h_ac5047a2b6dcd17eacdc0045392b58450} 
\index{err.h@{err.h}!err\_get\_logfp@{err\_get\_logfp}}
\index{err\_get\_logfp@{err\_get\_logfp}!err.h@{err.h}}
\doxysubsubsection{err\_get\_logfp()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT FILE $\ast$ err\+\_\+get\+\_\+logfp (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get the current logging filehandle. 

\begin{DoxyReturn}{Returns}
Current logging filehandle, NULL if disabled. 
\end{DoxyReturn}


Definition at line \textbf{ 157} of file \textbf{ err.\+c}.



Referenced by \textbf{ cmd\+\_\+ln\+\_\+parse\+\_\+r()}, \textbf{ err\+\_\+set\+\_\+logfile()}, and \textbf{ err\+\_\+set\+\_\+logfp()}.

\label{err_8h_ab77fa009824260d9f103308272dc89b8} 
\index{err.h@{err.h}!err\_set\_debug\_level@{err\_set\_debug\_level}}
\index{err\_set\_debug\_level@{err\_set\_debug\_level}!err.h@{err.h}}
\doxysubsubsection{err\_set\_debug\_level()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT int err\+\_\+set\+\_\+debug\+\_\+level (\begin{DoxyParamCaption}\item[{int}]{level }\end{DoxyParamCaption})}



Set debugging verbosity level. 

Note that debugging messages are only enabled when compiled with -\/DDEBUG.


\begin{DoxyParams}{Parameters}
{\em level} & Verbosity level to set, or 0 to disable debug messages. \\
\hline
\end{DoxyParams}


Definition at line \textbf{ 68} of file \textbf{ err.\+c}.

\label{err_8h_aa605de73499066475ec4cfb03e4c5a20} 
\index{err.h@{err.h}!err\_set\_logfile@{err\_set\_logfile}}
\index{err\_set\_logfile@{err\_set\_logfile}!err.h@{err.h}}
\doxysubsubsection{err\_set\_logfile()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT int err\+\_\+set\+\_\+logfile (\begin{DoxyParamCaption}\item[{char const $\ast$}]{file }\end{DoxyParamCaption})}



Append all log messages to a given file. 

Previous logging filehandle is closed (unless it was stdout or stderr).


\begin{DoxyParams}{Parameters}
{\em file} & File to send log messages to, or NULL to disable logging. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 for success, $<$0 for failure (e.\+g. if file does not exist) 
\end{DoxyReturn}


Definition at line \textbf{ 190} of file \textbf{ err.\+c}.



References \textbf{ err\+\_\+get\+\_\+logfp()}.



Referenced by \textbf{ cmd\+\_\+ln\+\_\+parse\+\_\+r()}.

\label{err_8h_ae3d449c3bb38991cab2f2a00d5c5f1b3} 
\index{err.h@{err.h}!err\_set\_logfp@{err\_set\_logfp}}
\index{err\_set\_logfp@{err\_set\_logfp}!err.h@{err.h}}
\doxysubsubsection{err\_set\_logfp()}
{\footnotesize\ttfamily SPHINXBASE\+\_\+\+EXPORT FILE $\ast$ err\+\_\+set\+\_\+logfp (\begin{DoxyParamCaption}\item[{FILE $\ast$}]{logfp }\end{DoxyParamCaption})}



Direct all logging to a given filehandle. 


\begin{DoxyParams}{Parameters}
{\em logfp} & Filehandle to send log messages to, or NULL to disable logging. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Previous logging filehandle, if any. 
\end{DoxyReturn}


Definition at line \textbf{ 179} of file \textbf{ err.\+c}.



References \textbf{ err\+\_\+get\+\_\+logfp()}.

