📄 apr_file_info.h
字号:
* @param fname The name of the file to stat. * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values * @param cont the pool to use to allocate the new file. */ APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname, apr_int32_t wanted, apr_pool_t *cont);/** * get the specified file's stats. The file is specified by filename, * instead of using a pre-opened file. If the file is a symlink, this function * will get the stats for the symlink not the file the symlink refers to. * @param finfo Where to store the information about the file, which is * never touched if the call fails. * @param fname The name of the file to stat. * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values * @param cont the pool to use to allocate the new file. * @deprecated This function is deprecated, it's equivalent to calling apr_stat with * the wanted flag value APR_FINFO_LINK */ APR_DECLARE(apr_status_t) apr_lstat(apr_finfo_t *finfo, const char *fname, apr_int32_t wanted, apr_pool_t *cont);/** @} *//** * @defgroup apr_dir Directory Manipulation Functions * @{ *//** * Open the specified directory. * @param new_dir The opened directory descriptor. * @param dirname The full path to the directory (use / on all systems) * @param cont The pool to use. */ APR_DECLARE(apr_status_t) apr_dir_open(apr_dir_t **new_dir, const char *dirname, apr_pool_t *cont);/** * close the specified directory. * @param thedir the directory descriptor to close. */ APR_DECLARE(apr_status_t) apr_dir_close(apr_dir_t *thedir);/** * Read the next entry from the specified directory. * @param finfo the file info structure and filled in by apr_dir_read * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values * @param thedir the directory descriptor returned from apr_dir_open * @remark No ordering is guaranteed for the entries read. */ APR_DECLARE(apr_status_t) apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted, apr_dir_t *thedir);/** * Rewind the directory to the first entry. * @param thedir the directory descriptor to rewind. */ APR_DECLARE(apr_status_t) apr_dir_rewind(apr_dir_t *thedir);/** @} *//** * @defgroup apr_filepath Filepath Manipulation Functions * @{ *//** Cause apr_filepath_merge to fail if addpath is above rootpath */#define APR_FILEPATH_NOTABOVEROOT 0x01/** internal: Only meaningful with APR_FILEPATH_NOTABOVEROOT */#define APR_FILEPATH_SECUREROOTTEST 0x02/** Cause apr_filepath_merge to fail if addpath is above rootpath, * even given a rootpath /foo/bar and an addpath ../bar/bash */#define APR_FILEPATH_SECUREROOT 0x03/** Fail apr_filepath_merge if the merged path is relative */#define APR_FILEPATH_NOTRELATIVE 0x04/** Fail apr_filepath_merge if the merged path is absolute */#define APR_FILEPATH_NOTABSOLUTE 0x08/** Return the file system's native path format (e.g. path delimiters * of ':' on MacOS9, '\' on Win32, etc.) */#define APR_FILEPATH_NATIVE 0x10/** Resolve the true case of existing directories and file elements * of addpath, (resolving any aliases on Win32) and append a proper * trailing slash if a directory */#define APR_FILEPATH_TRUENAME 0x20/** * Extract the rootpath from the given filepath * @param rootpath the root file path returned with APR_SUCCESS or APR_EINCOMPLETE * @param filepath the pathname to parse for its root component * @param flags the desired rules to apply, from * <PRE> * APR_FILEPATH_NATIVE Use native path seperators (e.g. '\' on Win32) * APR_FILEPATH_TRUENAME Tests that the root exists, and makes it proper * </PRE> * @param p the pool to allocate the new path string from * @remark on return, filepath points to the first non-root character in the * given filepath. In the simplest example, given a filepath of "/foo", * returns the rootpath of "/" and filepath points at "foo". This is far * more complex on other platforms, which will canonicalize the root form * to a consistant format, given the APR_FILEPATH_TRUENAME flag, and also * test for the validity of that root (e.g., that a drive d:/ or network * share //machine/foovol/). * The function returns APR_ERELATIVE if filepath isn't rooted (an * error), APR_EINCOMPLETE if the root path is ambigious (but potentially * legitimate, e.g. "/" on Windows is incomplete because it doesn't specify * the drive letter), or APR_EBADPATH if the root is simply invalid. * APR_SUCCESS is returned if filepath is an absolute path. */APR_DECLARE(apr_status_t) apr_filepath_root(const char **rootpath, const char **filepath, apr_int32_t flags, apr_pool_t *p);/** * Merge additional file path onto the previously processed rootpath * @param newpath the merged paths returned * @param rootpath the root file path (NULL uses the current working path) * @param addpath the path to add to the root path * @param flags the desired APR_FILEPATH_ rules to apply when merging * @param p the pool to allocate the new path string from * @remark if the flag APR_FILEPATH_TRUENAME is given, and the addpath * contains wildcard characters ('*', '?') on platforms that don't support * such characters within filenames, the paths will be merged, but the * result code will be APR_EPATHWILD, and all further segments will not * reflect the true filenames including the wildcard and following segments. */ APR_DECLARE(apr_status_t) apr_filepath_merge(char **newpath, const char *rootpath, const char *addpath, apr_int32_t flags, apr_pool_t *p);/** * Split a search path into separate components * @param pathelts the returned components of the search path * @param liststr the search path (e.g., <tt>getenv("PATH")</tt>) * @param p the pool to allocate the array and path components from * @remark empty path componenta do not become part of @a pathelts. * @remark the path separator in @a liststr is system specific; * e.g., ':' on Unix, ';' on Windows, etc. */APR_DECLARE(apr_status_t) apr_filepath_list_split(apr_array_header_t **pathelts, const char *liststr, apr_pool_t *p);/** * Merge a list of search path components into a single search path * @param liststr the returned search path; may be NULL if @a pathelts is empty * @param pathelts the components of the search path * @param p the pool to allocate the search path from * @remark emtpy strings in the source array are ignored. * @remark the path separator in @a liststr is system specific; * e.g., ':' on Unix, ';' on Windows, etc. */APR_DECLARE(apr_status_t) apr_filepath_list_merge(char **liststr, apr_array_header_t *pathelts, apr_pool_t *p);/** * Return the default file path (for relative file names) * @param path the default path string returned * @param flags optional flag APR_FILEPATH_NATIVE to retrieve the * default file path in os-native format. * @param p the pool to allocate the default path string from */APR_DECLARE(apr_status_t) apr_filepath_get(char **path, apr_int32_t flags, apr_pool_t *p);/** * Set the default file path (for relative file names) * @param path the default path returned * @param p the pool to allocate any working storage */APR_DECLARE(apr_status_t) apr_filepath_set(const char *path, apr_pool_t *p);/** The FilePath character encoding is unknown */#define APR_FILEPATH_ENCODING_UNKNOWN 0/** The FilePath character encoding is locale-dependent */#define APR_FILEPATH_ENCODING_LOCALE 1/** The FilePath character encoding is UTF-8 */#define APR_FILEPATH_ENCODING_UTF8 2/** * Determine the encoding used internally by the FilePath functions * @param style points to a variable which receives the encoding style flag * @param p the pool to allocate any working storage * @remark Use @c apr_os_locale_encoding and/or @c apr_os_default_encoding * to get the name of the path encoding if it's not UTF-8. */APR_DECLARE(apr_status_t) apr_filepath_encoding(int *style, apr_pool_t *p);/** @} *//** @} */#ifdef __cplusplus}#endif#endif /* ! APR_FILE_INFO_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -