\hypertarget{group__Escape__Unistd__Group}{}\doxysection{Unistd.\+h functions}
\label{group__Escape__Unistd__Group}\index{Unistd.h functions@{Unistd.h functions}}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Escape__Unistd__Group_ga6a9a24c18f7530cd1ba32c04fb6e8d1d}\label{group__Escape__Unistd__Group_ga6a9a24c18f7530cd1ba32c04fb6e8d1d}} 
\#define {\bfseries realpath}~\mbox{\hyperlink{group__Escape__Unistd__Group_gab82c7e31c1bd112c3dc079733b930d60}{escape\+\_\+realpath}}
\item 
\mbox{\Hypertarget{group__Escape__Unistd__Group_gafe1c008590b424aa220ec2a485c540fd}\label{group__Escape__Unistd__Group_gafe1c008590b424aa220ec2a485c540fd}} 
\#define {\bfseries readlink}~escape\+\_\+readlink
\item 
\mbox{\Hypertarget{group__Escape__Unistd__Group_ga91cd110445aa39a99dfdd776bdb3538e}\label{group__Escape__Unistd__Group_ga91cd110445aa39a99dfdd776bdb3538e}} 
\#define {\bfseries symlink}~escape\+\_\+symlink
\item 
\mbox{\Hypertarget{group__Escape__Unistd__Group_ga19865ecdd2722e5127c2c6b6effa73dc}\label{group__Escape__Unistd__Group_ga19865ecdd2722e5127c2c6b6effa73dc}} 
\#define {\bfseries access}~\mbox{\hyperlink{group__Escape__Unistd__Group_gab3abb73615f050f7dcf9806379693614}{escape\+\_\+access}}
\item 
\#define \mbox{\hyperlink{group__Escape__Unistd__Group_ga5ecdf33dcbe17677f251c99743b545ce}{pipe}}(fds)~\mbox{\hyperlink{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}{escape\+\_\+pipe}}(fds)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
char $\ast$ \mbox{\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 
\mbox{\Hypertarget{group__Escape__Unistd__Group_ga559d2d413d86141b87e9d764fceb3e68}\label{group__Escape__Unistd__Group_ga559d2d413d86141b87e9d764fceb3e68}} 
ssize\+\_\+t {\bfseries escape\+\_\+readlink} (const char $\ast$path, char $\ast$buf, size\+\_\+t bufsize)
\item 
\mbox{\Hypertarget{group__Escape__Unistd__Group_ga03a539ca5cb762fdfe4251ccc93f6af4}\label{group__Escape__Unistd__Group_ga03a539ca5cb762fdfe4251ccc93f6af4}} 
int {\bfseries escape\+\_\+symlink} (const char $\ast$path1, const char $\ast$path2)
\item 
int \mbox{\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 \mbox{\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}


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

\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Escape__Unistd__Group_ga5ecdf33dcbe17677f251c99743b545ce}\label{group__Escape__Unistd__Group_ga5ecdf33dcbe17677f251c99743b545ce}} 
\index{Unistd.h functions@{Unistd.h functions}!pipe@{pipe}}
\index{pipe@{pipe}!Unistd.h functions@{Unistd.h functions}}
\doxysubsubsection{\texorpdfstring{pipe}{pipe}}
{\footnotesize\ttfamily \#define pipe(\begin{DoxyParamCaption}\item[{}]{fds }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}{escape\+\_\+pipe}}(fds)}

Wrapper around \mbox{\hyperlink{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}{escape\+\_\+pipe()}}. \begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_pipe_gstreamer_example_8c-example}{ecore\+\_\+pipe\+\_\+gstreamer\+\_\+example.\+c}}, and \mbox{\hyperlink{ecore_pipe_simple_example_8c-example}{ecore\+\_\+pipe\+\_\+simple\+\_\+example.\+c}}.\end{Desc}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Escape__Unistd__Group_gab82c7e31c1bd112c3dc079733b930d60}\label{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}}
\doxysubsubsection{\texorpdfstring{escape\_realpath()}{escape\_realpath()}}
{\footnotesize\ttfamily char$\ast$ escape\+\_\+realpath (\begin{DoxyParamCaption}\item[{const char $\ast$}]{path,  }\item[{char $\ast$}]{resolved\+\_\+path }\end{DoxyParamCaption})}



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\+AX 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\+AX 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\+LL, then realpath() uses malloc(3) to allocate a buffer of up to P\+A\+T\+H\+\_\+\+M\+AX bytes to hold the resolved pathname, and returns a pointer to this buffer. The caller should deallocate this buffer using free(3). \mbox{\Hypertarget{group__Escape__Unistd__Group_gab3abb73615f050f7dcf9806379693614}\label{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}}
\doxysubsubsection{\texorpdfstring{escape\_access()}{escape\_access()}}
{\footnotesize\ttfamily int escape\+\_\+access (\begin{DoxyParamCaption}\item[{const char $\ast$}]{pathname,  }\item[{int}]{mode }\end{DoxyParamCaption})}



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\+\_\+\+OK, or a mask consisting of the bitwise OR of one or more of R\+\_\+\+OK, W\+\_\+\+OK, and X\+\_\+\+OK. F\+\_\+\+OK tests for the existence of the file. R\+\_\+\+OK, W\+\_\+\+OK, and X\+\_\+\+OK test whether the file exists and grants read, write, and execute permissions, respectively. \mbox{\Hypertarget{group__Escape__Unistd__Group_ga628723ff9618983a7065c2fbb76f9926}\label{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}}
\doxysubsubsection{\texorpdfstring{escape\_pipe()}{escape\_pipe()}}
{\footnotesize\ttfamily int escape\+\_\+pipe (\begin{DoxyParamCaption}\item[{int $\ast$}]{fds }\end{DoxyParamCaption})}



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. 