⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apr_file_io.h

📁 Apache官方在今天放出产品系列2.2的最新版本2.2.11的源码包 最流行的HTTP服务器软件之一
💻 H
📖 第 1 页 / 共 3 页
字号:
 * @param thefile The file descriptor * @param where How to move the pointer, one of: * <PRE> *            APR_SET  --  set the offset to offset *            APR_CUR  --  add the offset to the current position  *            APR_END  --  add the offset to the current file size  * </PRE> * @param offset The offset to move the pointer to. * @remark The third argument is modified to be the offset the pointer          was actually moved to. */APR_DECLARE(apr_status_t) apr_file_seek(apr_file_t *thefile,                                    apr_seek_where_t where,                                   apr_off_t *offset);/** * Create an anonymous pipe. * @param in The newly created pipe's file for reading. * @param out The newly created pipe's file for writing. * @param pool The pool to operate on. * @remark By default, the returned file descriptors will be inherited * by child processes created using apr_proc_create().  This can be * changed using apr_file_inherit_unset(). * @bug  Some platforms cannot toggle between blocking and nonblocking, * and when passing a pipe as a standard handle to an application which * does not expect it, a non-blocking stream will fluxor the client app. * @deprecated @see apr_file_pipe_create_ex */APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in,                                                apr_file_t **out,                                               apr_pool_t *pool);/** * Create an anonymous pipe which portably supports async timeout options. * @param in The newly created pipe's file for reading. * @param out The newly created pipe's file for writing. * @param blocking one of these values defined in apr_thread_proc.h; * <pre> *       APR_FULL_BLOCK *       APR_READ_BLOCK *       APR_WRITE_BLOCK *       APR_FULL_NONBLOCK * </pre> * @remark By default, the returned file descriptors will be inherited * by child processes created using apr_proc_create().  This can be * changed using apr_file_inherit_unset(). * @remark Some platforms cannot toggle between blocking and nonblocking, * and when passing a pipe as a standard handle to an application which * does not expect it, a non-blocking stream will fluxor the client app. * Use this function rather than apr_file_pipe_create to create pipes  * where one or both ends require non-blocking semantics. */APR_DECLARE(apr_status_t) apr_file_pipe_create_ex(apr_file_t **in,                                                   apr_file_t **out,                                                   apr_int32_t blocking,                                                   apr_pool_t *p);/** * Create a named pipe. * @param filename The filename of the named pipe * @param perm The permissions for the newly created pipe. * @param pool The pool to operate on. */APR_DECLARE(apr_status_t) apr_file_namedpipe_create(const char *filename,                                                     apr_fileperms_t perm,                                                     apr_pool_t *pool);/** * Get the timeout value for a pipe or manipulate the blocking state. * @param thepipe The pipe we are getting a timeout for. * @param timeout The current timeout value in microseconds.  */APR_DECLARE(apr_status_t) apr_file_pipe_timeout_get(apr_file_t *thepipe,                                                apr_interval_time_t *timeout);/** * Set the timeout value for a pipe or manipulate the blocking state. * @param thepipe The pipe we are setting a timeout on. * @param timeout The timeout value in microseconds.  Values < 0 mean wait  *        forever, 0 means do not wait at all. */APR_DECLARE(apr_status_t) apr_file_pipe_timeout_set(apr_file_t *thepipe,                                                   apr_interval_time_t timeout);/** file (un)locking functions. *//** * Establish a lock on the specified, open file. The lock may be advisory * or mandatory, at the discretion of the platform. The lock applies to * the file as a whole, rather than a specific range. Locks are established * on a per-thread/process basis; a second lock by the same thread will not * block. * @param thefile The file to lock. * @param type The type of lock to establish on the file. */APR_DECLARE(apr_status_t) apr_file_lock(apr_file_t *thefile, int type);/** * Remove any outstanding locks on the file. * @param thefile The file to unlock. */APR_DECLARE(apr_status_t) apr_file_unlock(apr_file_t *thefile);/**accessor and general file_io functions. *//** * return the file name of the current file. * @param new_path The path of the file.   * @param thefile The currently open file. */                     APR_DECLARE(apr_status_t) apr_file_name_get(const char **new_path,                                             apr_file_t *thefile);    /** * Return the data associated with the current file. * @param data The user data associated with the file.   * @param key The key to use for retreiving data associated with this file. * @param file The currently open file. */                     APR_DECLARE(apr_status_t) apr_file_data_get(void **data, const char *key,                                             apr_file_t *file);/** * Set the data associated with the current file. * @param file The currently open file. * @param data The user data to associate with the file.   * @param key The key to use for assocaiteing data with the file. * @param cleanup The cleanup routine to use when the file is destroyed. */                     APR_DECLARE(apr_status_t) apr_file_data_set(apr_file_t *file, void *data,                                            const char *key,                                            apr_status_t (*cleanup)(void *));/** * Write a string to a file using a printf format. * @param fptr The file to write to. * @param format The format string * @param ... The values to substitute in the format string * @return The number of bytes written */ APR_DECLARE_NONSTD(int) apr_file_printf(apr_file_t *fptr,                                         const char *format, ...)        __attribute__((format(printf,2,3)));/** * set the specified file's permission bits. * @param fname The file (name) to apply the permissions to. * @param perms The permission bits to apply to the file. * * @warning Some platforms may not be able to apply all of the * available permission bits; APR_INCOMPLETE will be returned if some * permissions are specified which could not be set. * * @warning Platforms which do not implement this feature will return * APR_ENOTIMPL. */APR_DECLARE(apr_status_t) apr_file_perms_set(const char *fname,                                             apr_fileperms_t perms);/** * Set attributes of the specified file. * @param fname The full path to the file (using / on all systems) * @param attributes Or'd combination of * <PRE> *            APR_FILE_ATTR_READONLY   - make the file readonly *            APR_FILE_ATTR_EXECUTABLE - make the file executable *            APR_FILE_ATTR_HIDDEN     - make the file hidden * </PRE> * @param attr_mask Mask of valid bits in attributes. * @param pool the pool to use. * @remark This function should be used in preference to explict manipulation *      of the file permissions, because the operations to provide these *      attributes are platform specific and may involve more than simply *      setting permission bits. * @warning Platforms which do not implement this feature will return *      APR_ENOTIMPL. */APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname,                                             apr_fileattrs_t attributes,                                             apr_fileattrs_t attr_mask,                                             apr_pool_t *pool);/** * Set the mtime of the specified file. * @param fname The full path to the file (using / on all systems) * @param mtime The mtime to apply to the file. * @param pool The pool to use. * @warning Platforms which do not implement this feature will return *      APR_ENOTIMPL. */APR_DECLARE(apr_status_t) apr_file_mtime_set(const char *fname,                                             apr_time_t mtime,                                             apr_pool_t *pool);/** * Create a new directory on the file system. * @param path the path for the directory to be created. (use / on all systems) * @param perm Permissions for the new direcoty. * @param pool the pool to use. */                        APR_DECLARE(apr_status_t) apr_dir_make(const char *path, apr_fileperms_t perm,                                        apr_pool_t *pool);/** Creates a new directory on the file system, but behaves like * 'mkdir -p'. Creates intermediate directories as required. No error * will be reported if PATH already exists. * @param path the path for the directory to be created. (use / on all systems) * @param perm Permissions for the new direcoty. * @param pool the pool to use. */APR_DECLARE(apr_status_t) apr_dir_make_recursive(const char *path,                                                 apr_fileperms_t perm,                                                 apr_pool_t *pool);/** * Remove directory from the file system. * @param path the path for the directory to be removed. (use / on all systems) * @param pool the pool to use. * @remark Removing a directory which is in-use (e.g., the current working * directory, or during apr_dir_read, or with an open file) is not portable. */                        APR_DECLARE(apr_status_t) apr_dir_remove(const char *path, apr_pool_t *pool);/** * get the specified file's stats. * @param finfo Where to store the information about the file. * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values  * @param thefile The file to get information about. */ APR_DECLARE(apr_status_t) apr_file_info_get(apr_finfo_t *finfo,                                             apr_int32_t wanted,                                            apr_file_t *thefile);    /** * Truncate the file's length to the specified offset * @param fp The file to truncate * @param offset The offset to truncate to. * @remark The read/write file offset is repositioned to offset. */APR_DECLARE(apr_status_t) apr_file_trunc(apr_file_t *fp, apr_off_t offset);/** * Retrieve the flags that were passed into apr_file_open() * when the file was opened. * @return apr_int32_t the flags */APR_DECLARE(apr_int32_t) apr_file_flags_get(apr_file_t *f);/** * Get the pool used by the file. */APR_POOL_DECLARE_ACCESSOR(file);/** * Set a file to be inherited by child processes. * */APR_DECLARE_INHERIT_SET(file);/** * Unset a file from being inherited by child processes. */APR_DECLARE_INHERIT_UNSET(file);/** * Open a temporary file * @param fp The apr file to use as a temporary file. * @param templ The template to use when creating a temp file. * @param flags The flags to open the file with. If this is zero, *              the file is opened with  *              APR_CREATE | APR_READ | APR_WRITE | APR_EXCL | APR_DELONCLOSE * @param p The pool to allocate the file out of. * @remark    * This function  generates  a unique temporary file name from template.   * The last six characters of template must be XXXXXX and these are replaced  * with a string that makes the filename unique. Since it will  be  modified, * template must not be a string constant, but should be declared as a character * array.   * */APR_DECLARE(apr_status_t) apr_file_mktemp(apr_file_t **fp, char *templ,                                          apr_int32_t flags, apr_pool_t *p);/** * Find an existing directory suitable as a temporary storage location. * @param temp_dir The temp directory. * @param p The pool to use for any necessary allocations. * @remark    * This function uses an algorithm to search for a directory that an * an application can use for temporary storage.  Once such a * directory is found, that location is cached by the library.  Thus, * callers only pay the cost of this algorithm once if that one time * is successful. * */APR_DECLARE(apr_status_t) apr_temp_dir_get(const char **temp_dir,                                            apr_pool_t *p);/** @} */#ifdef __cplusplus}#endif#endif  /* ! APR_FILE_IO_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -