You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.8 KiB
108 lines
2.8 KiB
#ifndef __ESCAPE_UNISTD_H__ |
|
#define __ESCAPE_UNISTD_H__ |
|
|
|
/** |
|
* @file escape_unistd.h |
|
* @brief The file that provides functions ported from Unix in unistd.h. |
|
* @defgroup Escape_Unistd_Group Unistd.h functions |
|
* @ingroup Escape |
|
* |
|
* This header provides functions ported from Unix in unistd.h. |
|
* |
|
* @{ |
|
*/ |
|
|
|
#include <sys/syslimits.h> |
|
|
|
/* Path function */ |
|
/** |
|
* @brief return the canonicalized absolute pathname |
|
* |
|
* @param path A path to canonicalize |
|
* @param resolved_path A pointer of size PATH_MAX where to store the result |
|
* |
|
* realpath() expands all symbolic links and resolves references to /./, /../ |
|
* and extra '/' 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 PATH_MAX 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 NULL, then realpath() uses malloc(3) |
|
* to allocate a buffer of up to PATH_MAX bytes to hold the resolved pathname, |
|
* and returns a pointer to this buffer. |
|
* The caller should deallocate this buffer using free(3). |
|
* |
|
*/ |
|
EAPI char *escape_realpath(const char *path, char *resolved_path); |
|
#ifdef realpath |
|
#undef realpath |
|
#endif |
|
#define realpath escape_realpath |
|
|
|
EAPI ssize_t |
|
escape_readlink(const char *path, |
|
char *buf, |
|
size_t bufsize); |
|
#ifdef readlink |
|
#undef readlink |
|
#endif |
|
#define readlink escape_readlink |
|
|
|
EAPI int |
|
escape_symlink(const char *path1, const char *path2); |
|
#ifdef symlink |
|
#undef symlink |
|
#endif |
|
#define symlink escape_symlink |
|
|
|
/** |
|
* @brief check real user's permissions for a file |
|
* |
|
* @param pathname The path to check |
|
* @param mode the permission to check |
|
* |
|
* 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. |
|
* |
|
*/ |
|
EAPI int |
|
escape_access(const char *pathname, int mode); |
|
#ifdef access |
|
#undef access |
|
#endif |
|
#define access escape_access |
|
|
|
/** |
|
* @brief Create a pair of sockets. |
|
* |
|
* @param fds A pointer that contains two sockets. |
|
* |
|
* 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. |
|
*/ |
|
EAPI int |
|
escape_pipe(int *fds); |
|
|
|
/** |
|
* @def pipe(fds) |
|
* |
|
* Wrapper around escape_pipe(). |
|
*/ |
|
#define pipe(fds) escape_pipe(fds) |
|
|
|
//#define sync() |
|
|
|
/** |
|
* @} |
|
*/ |
|
|
|
#endif /* __ESCAPE_UNISTD_H__ */
|
|
|