\hypertarget{group__Evil}{}\section{Evil}
\label{group__Evil}\index{Evil@{Evil}}


Microsoft Windows portability layer.  


\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Evil__Dirent__Group}{Dirent.\+h functions}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in \hyperlink{dirent_8h}{dirent.\+h}. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Dlfcn}{Functions that manage dynamic-\/link libraries.}
\begin{DoxyCompactList}\small\item\em x $\ast$ This header provides functions to load and unload dynamic-\/link libaries, to get the address of a symbol, and to get diagnostic information. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Inet__Group}{Inet.\+h functions}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in arpa/inet.\+h. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Main__Group}{Main}
\begin{DoxyCompactList}\small\item\em This header provides functions to initialize and shut down the Evil library. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Stdio__Group}{Stdio.\+h functions}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in stdio.\+h. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Stdlib__Group}{Stdlib.\+h functions.}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in stdlib.\+h. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__String__Group}{String.\+h functions.}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in string.\+h. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Time__Group}{Time.\+h functions}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in time.\+h. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Unistd__Group}{Unistd.\+h functions}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in unistd.\+h. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Pwd__Group}{Pwd.\+h functions}
\begin{DoxyCompactList}\small\item\em This header provides functions ported from Unix in \hyperlink{dirent_8h}{dirent.\+h}. \end{DoxyCompactList}\item 
\hyperlink{group__Evil__Mman}{Functions that manage memory mappping.}
\begin{DoxyCompactList}\small\item\em This header provides the meomry map functions mmap and munmap. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{group__Evil_gad39ebe4c4767eaa9a680777400cfaafe}{fcntl} (int fd, int cmd,...)
\begin{DoxyCompactList}\small\item\em Provide control over file descriptors. \end{DoxyCompactList}\item 
wchar\+\_\+t $\ast$ \hyperlink{group__Evil_gaad3cf8a118e6dc32c90430f6a35bed12}{evil\+\_\+char\+\_\+to\+\_\+wchar} (const char $\ast$text)
\begin{DoxyCompactList}\small\item\em Convert a string from char $\ast$ to wchar\+\_\+t $\ast$. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Evil_ga3bd76e737e3916c9396daaa11fd77759}{evil\+\_\+wchar\+\_\+to\+\_\+char} (const wchar\+\_\+t $\ast$text)
\begin{DoxyCompactList}\small\item\em Convert a string from wchar\+\_\+t $\ast$ to char $\ast$. \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{group__Evil_ga2d1e829ef2c0a606f07648726e2832de}{evil\+\_\+utf16\+\_\+to\+\_\+utf8} (const wchar\+\_\+t $\ast$text)
\begin{DoxyCompactList}\small\item\em Convert a string from U\+T\+F-\/16 to U\+T\+F-\/8. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Evil_ga2b8673322def451eefb11d235d5b9cfb}{evil\+\_\+tmpdir\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Return a dir to store temporary files. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Evil_gad888002c51fab074cf46cfe227f0b522}{evil\+\_\+homedir\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Return a dir to store personal files. \end{DoxyCompactList}\item 
int \hyperlink{group__Evil_ga7c4333c262a1b4fe815a8044c68b0618}{evil\+\_\+path\+\_\+is\+\_\+absolute} (const char $\ast$path)
\begin{DoxyCompactList}\small\item\em check if the given path is absolute. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Microsoft Windows portability layer. 



\subsection{Function Documentation}
\hypertarget{group__Evil_gad39ebe4c4767eaa9a680777400cfaafe}{}\index{Evil@{Evil}!fcntl@{fcntl}}
\index{fcntl@{fcntl}!Evil@{Evil}}
\subsubsection[{fcntl}]{\setlength{\rightskip}{0pt plus 5cm}int fcntl (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{int}]{cmd, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Evil_gad39ebe4c4767eaa9a680777400cfaafe}


Provide control over file descriptors. 


\begin{DoxyParams}{Parameters}
{\em fd} & The file descriptor. \\
\hline
{\em cmd} & The type of control. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/1 otherwise.
\end{DoxyReturn}
Performs one of various miscellaneous operations on {\ttfamily fd}. The operation in question is determined by {\ttfamily cmd\+:} 


\begin{DoxyItemize}
\item F\+\_\+\+S\+E\+T\+F\+D\+: Set the close-\/on-\/exec flag to the value specified by the argument after command (only the least significant bit is used).
\item F\+\_\+\+S\+E\+T\+L\+K and F\+\_\+\+S\+E\+T\+L\+K\+W\+: used to manage discretionary file locks. The third argument must be a pointer to a struct flock (that may be overwritten by this call).
\end{DoxyItemize}

This function returns 0 on success, -\/1 otherwise.

Conformity\+: None.

Supported O\+S\+: Windows Vista, Windows X\+P or Windows 2000 Professional. 

References flock\+::l\+\_\+len, flock\+::l\+\_\+start, flock\+::l\+\_\+type, and flock\+::l\+\_\+whence.



Referenced by ecore\+\_\+pipe\+\_\+full\+\_\+add(), eeze\+\_\+mount\+\_\+tabs\+\_\+watch(), eina\+\_\+file\+\_\+open(), and eina\+\_\+mmap\+\_\+safety\+\_\+enabled\+\_\+set().

\hypertarget{group__Evil_gaad3cf8a118e6dc32c90430f6a35bed12}{}\index{Evil@{Evil}!evil\+\_\+char\+\_\+to\+\_\+wchar@{evil\+\_\+char\+\_\+to\+\_\+wchar}}
\index{evil\+\_\+char\+\_\+to\+\_\+wchar@{evil\+\_\+char\+\_\+to\+\_\+wchar}!Evil@{Evil}}
\subsubsection[{evil\+\_\+char\+\_\+to\+\_\+wchar}]{\setlength{\rightskip}{0pt plus 5cm}wchar\+\_\+t$\ast$ evil\+\_\+char\+\_\+to\+\_\+wchar (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{text}
\end{DoxyParamCaption}
)}\label{group__Evil_gaad3cf8a118e6dc32c90430f6a35bed12}


Convert a string from char $\ast$ to wchar\+\_\+t $\ast$. 


\begin{DoxyParams}{Parameters}
{\em text} & The string to convert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The converted string.
\end{DoxyReturn}
Convert a string from char $\ast$ to wchar\+\_\+t $\ast$ and return it. If the allocation or conversion fails, N\+U\+L\+L is returned. On success, the returned value must be freed when it is not used anymore.

Conformity\+: Non applicable.

Supported O\+S\+: Windows 95, Windows 98, Windows Me, Windows N\+T, Windows 2000, Windows X\+P. 

Referenced by dlopen(), dlsym(), and opendir().

\hypertarget{group__Evil_ga3bd76e737e3916c9396daaa11fd77759}{}\index{Evil@{Evil}!evil\+\_\+wchar\+\_\+to\+\_\+char@{evil\+\_\+wchar\+\_\+to\+\_\+char}}
\index{evil\+\_\+wchar\+\_\+to\+\_\+char@{evil\+\_\+wchar\+\_\+to\+\_\+char}!Evil@{Evil}}
\subsubsection[{evil\+\_\+wchar\+\_\+to\+\_\+char}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ evil\+\_\+wchar\+\_\+to\+\_\+char (
\begin{DoxyParamCaption}
\item[{const wchar\+\_\+t $\ast$}]{text}
\end{DoxyParamCaption}
)}\label{group__Evil_ga3bd76e737e3916c9396daaa11fd77759}


Convert a string from wchar\+\_\+t $\ast$ to char $\ast$. 


\begin{DoxyParams}{Parameters}
{\em text} & The string to convert. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The converted string.
\end{DoxyReturn}
Convert a string from wchar\+\_\+t $\ast$ to char $\ast$ and return it. If the allocation or conversion fails, N\+U\+L\+L is returned. On success, the returned value must be freed when it is not used anymore.

Conformity\+: Non applicable.

Supported O\+S\+: Windows 95, Windows 98, Windows Me, Windows N\+T, Windows 2000, Windows X\+P. 

Referenced by getpwnam(), opendir(), and readdir().

\hypertarget{group__Evil_ga2d1e829ef2c0a606f07648726e2832de}{}\index{Evil@{Evil}!evil\+\_\+utf16\+\_\+to\+\_\+utf8@{evil\+\_\+utf16\+\_\+to\+\_\+utf8}}
\index{evil\+\_\+utf16\+\_\+to\+\_\+utf8@{evil\+\_\+utf16\+\_\+to\+\_\+utf8}!Evil@{Evil}}
\subsubsection[{evil\+\_\+utf16\+\_\+to\+\_\+utf8}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ evil\+\_\+utf16\+\_\+to\+\_\+utf8 (
\begin{DoxyParamCaption}
\item[{const wchar\+\_\+t $\ast$}]{text}
\end{DoxyParamCaption}
)}\label{group__Evil_ga2d1e829ef2c0a606f07648726e2832de}


Convert a string from U\+T\+F-\/16 to U\+T\+F-\/8. 


\begin{DoxyParams}{Parameters}
{\em text} & The string to convert in U\+T\+F-\/16. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The converted string in U\+T\+F-\/8.
\end{DoxyReturn}
Convert a string from U\+T\+F-\/16 to U\+T\+F-\/8 and return it. If the allocation or conversion fails, N\+U\+L\+L is returned. On success, the returned value must be freed when it is not used anymore.

Conformity\+: Non applicable.

Supported O\+S\+: Windows 95, Windows 98, Windows Me, Windows N\+T, Windows 2000, Windows X\+P. \hypertarget{group__Evil_ga2b8673322def451eefb11d235d5b9cfb}{}\index{Evil@{Evil}!evil\+\_\+tmpdir\+\_\+get@{evil\+\_\+tmpdir\+\_\+get}}
\index{evil\+\_\+tmpdir\+\_\+get@{evil\+\_\+tmpdir\+\_\+get}!Evil@{Evil}}
\subsubsection[{evil\+\_\+tmpdir\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evil\+\_\+tmpdir\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Evil_ga2b8673322def451eefb11d235d5b9cfb}


Return a dir to store temporary files. 

\begin{DoxyReturn}{Returns}
The directory to store temporary files.
\end{DoxyReturn}
Return a directory to store temporary files. The function gets the value of the following environment variables, and in that order\+:
\begin{DoxyItemize}
\item T\+M\+P
\item T\+E\+M\+P
\item U\+S\+E\+R\+P\+R\+O\+F\+I\+L\+E
\item W\+I\+N\+D\+I\+R and returns its value if it exists. If none exists, the function returns \char`\"{}\+C\+:\textbackslash{}\char`\"{}.
\end{DoxyItemize}

Conformity\+: Non applicable.

Supported O\+S\+: Windows 95, Windows 98, Windows Me, Windows N\+T, Windows 2000, Windows X\+P. 

Referenced by eina\+\_\+file\+\_\+mkdtemp(), and eina\+\_\+file\+\_\+mkstemp().

\hypertarget{group__Evil_gad888002c51fab074cf46cfe227f0b522}{}\index{Evil@{Evil}!evil\+\_\+homedir\+\_\+get@{evil\+\_\+homedir\+\_\+get}}
\index{evil\+\_\+homedir\+\_\+get@{evil\+\_\+homedir\+\_\+get}!Evil@{Evil}}
\subsubsection[{evil\+\_\+homedir\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evil\+\_\+homedir\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Evil_gad888002c51fab074cf46cfe227f0b522}


Return a dir to store personal files. 

\begin{DoxyReturn}{Returns}
The directory to store personal files.
\end{DoxyReturn}
Return a directory to store personal files. The function gets the value of the following environment variables, and in that order\+:
\begin{DoxyItemize}
\item H\+O\+M\+E
\item U\+S\+E\+R\+P\+R\+O\+F\+I\+L\+E
\item W\+I\+N\+D\+I\+R and returns its value if it exists. If none exists, the function returns \char`\"{}\+C\+:\textbackslash{}\char`\"{}.
\end{DoxyItemize}

Conformity\+: Non applicable.

Supported O\+S\+: Windows 95, Windows 98, Windows Me, Windows N\+T, Windows 2000, Windows X\+P. 

Referenced by getpwnam().

\hypertarget{group__Evil_ga7c4333c262a1b4fe815a8044c68b0618}{}\index{Evil@{Evil}!evil\+\_\+path\+\_\+is\+\_\+absolute@{evil\+\_\+path\+\_\+is\+\_\+absolute}}
\index{evil\+\_\+path\+\_\+is\+\_\+absolute@{evil\+\_\+path\+\_\+is\+\_\+absolute}!Evil@{Evil}}
\subsubsection[{evil\+\_\+path\+\_\+is\+\_\+absolute}]{\setlength{\rightskip}{0pt plus 5cm}int evil\+\_\+path\+\_\+is\+\_\+absolute (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path}
\end{DoxyParamCaption}
)}\label{group__Evil_ga7c4333c262a1b4fe815a8044c68b0618}


check if the given path is absolute. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 if the given path is absolute, 0 otherwise.
\end{DoxyReturn}
Check if the path {\ttfamily path} is absolute or not. An absolute path must begin with a letter (upper or lower case), followed by by the char \textquotesingle{}\+:\textquotesingle{}, followed by the char \textquotesingle{}/\textquotesingle{} or \textquotesingle{}\textbackslash{}\textquotesingle{}. If {\ttfamily path} is absolute this function returns 1, otherwise it returns 0. If {\ttfamily path} is {\ttfamily N\+U\+L\+L}, it returns 0.

Conformity\+: Non applicable.

Supported O\+S\+: Windows 95, Windows 98, Windows Me, Windows N\+T, Windows 2000, Windows X\+P.

\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}


Referenced by eina\+\_\+file\+\_\+path\+\_\+relative().

