\hypertarget{kdbos_8h}{}\doxysection{kdbos.\+h File Reference}
\label{kdbos_8h}\index{kdbos.h@{kdbos.h}}


Operating system specific workarounds.  


{\ttfamily \#include $<$limits.\+h$>$}\newline
{\ttfamily \#include $<$inttypes.\+h$>$}\newline
{\ttfamily \#include $<$sys/types.\+h$>$}\newline
{\ttfamily \#include $<$stdarg.\+h$>$}\newline
Include dependency graph for kdbos.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{kdbos_8h__incl}
\end{center}
\end{figure}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{kdbos_8h_ac05e829cd51ec182b6a13400671a9d1e}{ELEKTRA\+\_\+\+MAX\+\_\+\+ARRAY\+\_\+\+SIZE}}~(1 + 19 + 20 + 1)
\begin{DoxyCompactList}\small\item\em The buffer size needed for an array name. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{kdbos_8h_abd69e457fc53afc0dc2efad596d9ed7a}{KDB\+\_\+\+FILE\+\_\+\+MODE}}~0600
\begin{DoxyCompactList}\small\item\em Default Mode. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{kdbos_8h_a383abc9de75375a7c8c24e5526643d51}{KDB\+\_\+\+DIR\+\_\+\+MODE}}~0100
\begin{DoxyCompactList}\small\item\em Default directory mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{kdbos_8h_ada78ffff3cb0d4ae9e82205fe0c992cc}\label{kdbos_8h_ada78ffff3cb0d4ae9e82205fe0c992cc}} 
\#define \mbox{\hyperlink{kdbos_8h_ada78ffff3cb0d4ae9e82205fe0c992cc}{KDB\+\_\+\+MAX\+\_\+\+PATH\+\_\+\+LENGTH}}~\+\_\+\+POSIX\+\_\+\+PATH\+\_\+\+MAX
\begin{DoxyCompactList}\small\item\em KDB\+\_\+\+MAX\+\_\+\+PATH\+\_\+\+LENGTH will be the value for longest possible filenames on the system. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Operating system specific workarounds. 

Integer Types must be at least 32bit\+:

Type Purpose Limits int Integral Fast Type INT\+\_\+\+MIN, INT\+\_\+\+MAX size\+\_\+t size of array or string 0, SIZE\+\_\+\+MAX ssize\+\_\+t size with error cond. -\/1, SSIZE\+\_\+\+MAX($<$\+SIZE\+\_\+\+MAX) time\+\_\+t Seconds since 1970 0,.. recommended\+: 64 bit

Following constants must be defined\+:

KDB\+\_\+\+FILE\+\_\+\+MODE the standard mode for keys KDB\+\_\+\+DIR\+\_\+\+MODE the mode to add ($\vert$=) for key directories

Following limits must be defined\+:

KDB\+\_\+\+MAX\+\_\+\+PATH\+\_\+\+LENGTH the maximum length for a pathname

In addition to the types the ... or va\+\_\+list must be supported, this is ISO C and should happen by including $<$stdarg.\+h$>$.

Go ahead and write a \#ifdef block for your operating system when the POSIX defaults are not ok

\begin{DoxyCopyright}{Copyright}
BSD License (see LICENSE.\+md or \href{https://www.libelektra.org}{\texttt{ https\+://www.\+libelektra.\+org}}) 
\end{DoxyCopyright}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{kdbos_8h_ac05e829cd51ec182b6a13400671a9d1e}\label{kdbos_8h_ac05e829cd51ec182b6a13400671a9d1e}} 
\index{kdbos.h@{kdbos.h}!ELEKTRA\_MAX\_ARRAY\_SIZE@{ELEKTRA\_MAX\_ARRAY\_SIZE}}
\index{ELEKTRA\_MAX\_ARRAY\_SIZE@{ELEKTRA\_MAX\_ARRAY\_SIZE}!kdbos.h@{kdbos.h}}
\doxysubsubsection{\texorpdfstring{ELEKTRA\_MAX\_ARRAY\_SIZE}{ELEKTRA\_MAX\_ARRAY\_SIZE}}
{\footnotesize\ttfamily \#define ELEKTRA\+\_\+\+MAX\+\_\+\+ARRAY\+\_\+\+SIZE~(1 + 19 + 20 + 1)}



The buffer size needed for an array name. 

The size of the buffer so that the buffer can contain\+:
\begin{DoxyItemize}
\item (1) a \# in the beginning
\item (9) up to 19 underscores are needed as prefix
\item (20) a 64bit number has a maximum of 20 digits
\item (1) one byte for null termination
\end{DoxyItemize}

E.\+g. \#\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+\+\_\+18446744073709551615\textbackslash{}0 \mbox{\Hypertarget{kdbos_8h_a383abc9de75375a7c8c24e5526643d51}\label{kdbos_8h_a383abc9de75375a7c8c24e5526643d51}} 
\index{kdbos.h@{kdbos.h}!KDB\_DIR\_MODE@{KDB\_DIR\_MODE}}
\index{KDB\_DIR\_MODE@{KDB\_DIR\_MODE}!kdbos.h@{kdbos.h}}
\doxysubsubsection{\texorpdfstring{KDB\_DIR\_MODE}{KDB\_DIR\_MODE}}
{\footnotesize\ttfamily \#define KDB\+\_\+\+DIR\+\_\+\+MODE~0100}



Default directory mode. 

This mode will be used for new directories. Will be ORed together with KDB\+\_\+\+FILE\+\_\+\+MODE to get the permissions of an directory. \mbox{\Hypertarget{kdbos_8h_abd69e457fc53afc0dc2efad596d9ed7a}\label{kdbos_8h_abd69e457fc53afc0dc2efad596d9ed7a}} 
\index{kdbos.h@{kdbos.h}!KDB\_FILE\_MODE@{KDB\_FILE\_MODE}}
\index{KDB\_FILE\_MODE@{KDB\_FILE\_MODE}!kdbos.h@{kdbos.h}}
\doxysubsubsection{\texorpdfstring{KDB\_FILE\_MODE}{KDB\_FILE\_MODE}}
{\footnotesize\ttfamily \#define KDB\+\_\+\+FILE\+\_\+\+MODE~0600}



Default Mode. 

This mode will be used for new files 