\hypertarget{getenv_8cpp}{\section{getenv.\+cpp File Reference}
\label{getenv_8cpp}\index{getenv.\+cpp@{getenv.\+cpp}}
}


Source for the getenv library.  


{\ttfamily \#include $<$kdbgetenv.\+h$>$}\\*
{\ttfamily \#include $<$kdbconfig.\+h$>$}\\*
{\ttfamily \#include $<$kdbcontext.\+hpp$>$}\\*
{\ttfamily \#include $<$kdbhelper.\+h$>$}\\*
{\ttfamily \#include $<$dlfcn.\+h$>$}\\*
{\ttfamily \#include $<$stdio.\+h$>$}\\*
{\ttfamily \#include $<$stdlib.\+h$>$}\\*
{\ttfamily \#include $<$string.\+h$>$}\\*
{\ttfamily \#include $<$signal.\+h$>$}\\*
{\ttfamily \#include $<$libgen.\+h$>$}\\*
{\ttfamily \#include $<$unistd.\+h$>$}\\*
{\ttfamily \#include $<$sys/types.\+h$>$}\\*
{\ttfamily \#include $<$string$>$}\\*
{\ttfamily \#include $<$chrono$>$}\\*
{\ttfamily \#include $<$sstream$>$}\\*
{\ttfamily \#include $<$iostream$>$}\\*
{\ttfamily \#include \char`\"{}readme\+\_\+elektrify-\/getenv.\+c\char`\"{}}\\*
Include dependency graph for getenv.\+cpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{getenv_8cpp__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void {\bfseries ckdb\+::elektra\+Lock\+Mutex} ()
\begin{DoxyCompactList}\small\item\em Lock the internally used mutex to access elektra\+Repo, elektra\+Config or elektra\+Parent\+Key. \end{DoxyCompactList}\item 
void {\bfseries ckdb\+::elektra\+Unlock\+Mutex} ()
\begin{DoxyCompactList}\small\item\em Unlock the internally used mutex. \end{DoxyCompactList}\item 
void {\bfseries ckdb\+::elektra\+Open} (int $\ast$argc, char $\ast$$\ast$argv)
\begin{DoxyCompactList}\small\item\em Initializes Global Elektra Repo+\+Config. \end{DoxyCompactList}\item 
void {\bfseries ckdb\+::elektra\+Close} ()
\begin{DoxyCompactList}\small\item\em Closes and frees Repo+\+Config. \end{DoxyCompactList}\item 
char $\ast$ {\bfseries ckdb\+::elektra\+Get\+Env} (const char $\ast$cname, gfcn orig\+Getenv)
\begin{DoxyCompactList}\small\item\em Uses Elektra to get from environment. \end{DoxyCompactList}\item 
char $\ast$ {\bfseries ckdb\+::elektra\+Bootstrap\+Get\+Env} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Search in environ, should be identical to getenv. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
Key $\ast$ {\bfseries ckdb\+::elektra\+Parent\+Key}
\begin{DoxyCompactList}\small\item\em The parent\+Key used to access elektra\+Repo. \end{DoxyCompactList}\item 
Key\+Set $\ast$ {\bfseries ckdb\+::elektra\+Config}
\begin{DoxyCompactList}\small\item\em The config of the application. \end{DoxyCompactList}\item 
\hypertarget{namespaceckdb_a63f6d48526d710d78683f96b242f8163}{K\+D\+B $\ast$ {\bfseries ckdb\+::elektra\+Repo}}\label{namespaceckdb_a63f6d48526d710d78683f96b242f8163}

\begin{DoxyCompactList}\small\item\em The K\+D\+B repository to be used to fetch configuration. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Source for the getenv library. 

\begin{DoxyNote}{Note}
there are two necessary bootstrap phases\+:
\end{DoxyNote}
1.) bootstrapping in pre-\/main phase when no allocation is possible 2.) bootstrapping when elektra modules use getenv()

\begin{DoxyCopyright}{Copyright}
B\+S\+D License (see doc/\+C\+O\+P\+Y\+I\+N\+G or \href{http://www.libelektra.org}{\tt http\+://www.\+libelektra.\+org}) 
\end{DoxyCopyright}
