📄 apr_file_io.h
字号:
apr_pool_t *cont);/** * Create a named pipe. * @param filename The filename of the named pipe * @param perm The permissions for the newly created pipe. * @param cont The pool to operate on. */APR_DECLARE(apr_status_t) apr_file_namedpipe_create(const char *filename, apr_fileperms_t perm, apr_pool_t *cont);/** * 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. * * 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 cont 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 *cont);/** * 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 cont the pool to use. */ APR_DECLARE(apr_status_t) apr_dir_make(const char *path, apr_fileperms_t perm, apr_pool_t *cont);/** 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 cont the pool to use. */ APR_DECLARE(apr_status_t) apr_dir_remove(const char *path, apr_pool_t *cont);/** * 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);/** @deprecated @see apr_file_inherit_set */APR_DECLARE(void) apr_file_set_inherit(apr_file_t *file);/** * Unset a file from being inherited by child processes. */APR_DECLARE_INHERIT_UNSET(file);/** @deprecated @see apr_file_inherit_unset */APR_DECLARE(void) apr_file_unset_inherit(apr_file_t *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 + -