\hypertarget{group__Escape__Unistd__Group}{}\section{Unistd.\+h functions}
\label{group__Escape__Unistd__Group}\index{Unistd.\+h functions@{Unistd.\+h functions}}


This header provides functions ported from Unix in unistd.\+h.  


\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Escape__Unistd__Group_ga6a9a24c18f7530cd1ba32c04fb6e8d1d}{}\#define {\bfseries realpath}~\hyperlink{group__Escape__Unistd__Group_gab82c7e31c1bd112c3dc079733b930d60}{escape\+\_\+realpath}\label{group__Escape__Unistd__Group_ga6a9a24c18f7530cd1ba32c04fb6e8d1d}

\item 
\hypertarget{group__Escape__Unistd__Group_gafe1c008590b424aa220ec2a485c540fd}{}\#define {\bfseries readlink}~escape\+\_\+readlink\label{group__Escape__Unistd__Group_gafe1c008590b424aa220ec2a485c540fd}

\item 
\hypertarget{group__Escape__Unistd__Group_ga91cd110445aa39a99dfdd776bdb3538e}{}\#define {\bfseries symlink}~escape\+\_\+symlink\label{group__Escape__Unistd__Group_ga91cd110445aa39a99dfdd776bdb3538e}

\item 
\hypertarget{group__Escape__Unistd__Group_ga19865ecdd2722e5127c2c6b6effa73dc}{}\#define {\bfseries access}~\hyperlink{group__Escape__Unistd__Group_gab3abb73615f050f7dcf9806379693614}{escape\+\_\+access}\label{group__Escape__Unistd__Group_ga19865ecdd2722e5127c2c6b6effa73dc}

\item 
\hypertarget{group__Escape__Unistd__Group_ga5ecdf33dcbe17677f251c99743b545ce}{}\#define \hyperlink{group__Escape__Unistd__Group_ga5ecdf33dcbe17677f251c99743b545ce}{pipe}(fds)~\hyperlink{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}{escape\+\_\+pipe}(fds)\label{group__Escape__Unistd__Group_ga5ecdf33dcbe17677f251c99743b545ce}

\begin{DoxyCompactList}\small\item\em Wrapper around \hyperlink{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}{escape\+\_\+pipe()}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
char $\ast$ \hyperlink{group__Escape__Unistd__Group_gab82c7e31c1bd112c3dc079733b930d60}{escape\+\_\+realpath} (const char $\ast$path, char $\ast$resolved\+\_\+path)
\begin{DoxyCompactList}\small\item\em return the canonicalized absolute pathname \end{DoxyCompactList}\item 
\hypertarget{group__Escape__Unistd__Group_ga559d2d413d86141b87e9d764fceb3e68}{}ssize\+\_\+t {\bfseries escape\+\_\+readlink} (const char $\ast$path, char $\ast$buf, size\+\_\+t bufsize)\label{group__Escape__Unistd__Group_ga559d2d413d86141b87e9d764fceb3e68}

\item 
\hypertarget{group__Escape__Unistd__Group_ga03a539ca5cb762fdfe4251ccc93f6af4}{}int {\bfseries escape\+\_\+symlink} (const char $\ast$path1, const char $\ast$path2)\label{group__Escape__Unistd__Group_ga03a539ca5cb762fdfe4251ccc93f6af4}

\item 
int \hyperlink{group__Escape__Unistd__Group_gab3abb73615f050f7dcf9806379693614}{escape\+\_\+access} (const char $\ast$pathname, int mode)
\begin{DoxyCompactList}\small\item\em check real user\textquotesingle{}s permissions for a file \end{DoxyCompactList}\item 
int \hyperlink{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}{escape\+\_\+pipe} (int $\ast$fds)
\begin{DoxyCompactList}\small\item\em Create a pair of sockets. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This header provides functions ported from Unix in unistd.\+h. 



\subsection{Function Documentation}
\hypertarget{group__Escape__Unistd__Group_gab82c7e31c1bd112c3dc079733b930d60}{}\index{Unistd.\+h functions@{Unistd.\+h functions}!escape\+\_\+realpath@{escape\+\_\+realpath}}
\index{escape\+\_\+realpath@{escape\+\_\+realpath}!Unistd.\+h functions@{Unistd.\+h functions}}
\subsubsection[{escape\+\_\+realpath}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ escape\+\_\+realpath (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{char $\ast$}]{resolved\+\_\+path}
\end{DoxyParamCaption}
)}\label{group__Escape__Unistd__Group_gab82c7e31c1bd112c3dc079733b930d60}


return the canonicalized absolute pathname 


\begin{DoxyParams}{Parameters}
{\em path} & A path to canonicalize \\
\hline
{\em resolved\+\_\+path} & A pointer of size P\+A\+T\+H\+\_\+\+M\+A\+X where to store the result\\
\hline
\end{DoxyParams}
realpath() expands all symbolic links and resolves references to /./, /../ and extra \textquotesingle{}/\textquotesingle{} characters in the null-\/terminated string named by path to produce a canonicalized absolute pathname. The resulting pathname is stored as a null-\/terminated string, up to a maximum of P\+A\+T\+H\+\_\+\+M\+A\+X bytes, in the buffer pointed to by resolved\+\_\+path. The resulting path will have no symbolic link, /./ or /../ components.

If resolved\+\_\+path is specified as N\+U\+L\+L, then realpath() uses malloc(3) to allocate a buffer of up to P\+A\+T\+H\+\_\+\+M\+A\+X bytes to hold the resolved pathname, and returns a pointer to this buffer. The caller should deallocate this buffer using free(3). \hypertarget{group__Escape__Unistd__Group_gab3abb73615f050f7dcf9806379693614}{}\index{Unistd.\+h functions@{Unistd.\+h functions}!escape\+\_\+access@{escape\+\_\+access}}
\index{escape\+\_\+access@{escape\+\_\+access}!Unistd.\+h functions@{Unistd.\+h functions}}
\subsubsection[{escape\+\_\+access}]{\setlength{\rightskip}{0pt plus 5cm}int escape\+\_\+access (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{pathname, }
\item[{int}]{mode}
\end{DoxyParamCaption}
)}\label{group__Escape__Unistd__Group_gab3abb73615f050f7dcf9806379693614}


check real user\textquotesingle{}s permissions for a file 


\begin{DoxyParams}{Parameters}
{\em pathname} & The path to check \\
\hline
{\em mode} & the permission to check\\
\hline
\end{DoxyParams}
access() checks whether the calling process can access the file pathname. If pathname is a symbolic link, it is dereferenced. The mode specifies the accessibility check(s) to be performed, and is either the value F\+\_\+\+O\+K, or a mask consisting of the bitwise O\+R of one or more of R\+\_\+\+O\+K, W\+\_\+\+O\+K, and X\+\_\+\+O\+K. F\+\_\+\+O\+K tests for the existence of the file. R\+\_\+\+O\+K, W\+\_\+\+O\+K, and X\+\_\+\+O\+K test whether the file exists and grants read, write, and execute permissions, respectively. \hypertarget{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}{}\index{Unistd.\+h functions@{Unistd.\+h functions}!escape\+\_\+pipe@{escape\+\_\+pipe}}
\index{escape\+\_\+pipe@{escape\+\_\+pipe}!Unistd.\+h functions@{Unistd.\+h functions}}
\subsubsection[{escape\+\_\+pipe}]{\setlength{\rightskip}{0pt plus 5cm}int escape\+\_\+pipe (
\begin{DoxyParamCaption}
\item[{int $\ast$}]{fds}
\end{DoxyParamCaption}
)}\label{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}


Create a pair of sockets. 


\begin{DoxyParams}{Parameters}
{\em fds} & A pointer that contains two sockets.\\
\hline
\end{DoxyParams}
Create a pair of sockets that can be use with select(). Contrary to Unix, that functions does not create a pair of file descriptors.

Conformity\+: Not applicable. 