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

📄 apr_file_io.h

📁 Apache V2.0.15 Alpha For Linuxhttpd-2_0_15-alpha.tar.Z
💻 H
📖 第 1 页 / 共 2 页
字号:
 * @tip apr_file_read will read up to the specified number of bytes, but never  *      more.  If there isn't enough data to fill that number of bytes,  *      then the process/thread will block until it is available or EOF  *      is reached.  If a char was put back into the stream via ungetc,  *      it will be the first character returned.  * *      It is possible for both bytes to be read and an APR_EOF or other  *      error to be returned. * *      APR_EINTR is never returned. * @deffunc apr_status_t apr_file_read_full(apr_file_t *thefile, void *buf, apr_size_t nbytes, apr_size_t *bytes_read) */APR_DECLARE(apr_status_t) apr_file_read_full(apr_file_t *thefile, void *buf,                                        apr_size_t nbytes,                                        apr_size_t *bytes_read);/** * Write data to the specified file, ensuring that all of the data is * written before returning. * @param thefile The file descriptor to write to. * @param buf The buffer which contains the data. * @param nbytes The number of bytes to write. * @param bytes_written If non-NULL, this will contain the number of bytes written. * @tip apr_file_write will write up to the specified number of bytes, but never  *      more.  If the OS cannot write that many bytes, the process/thread  *      will block until they can be written. Exceptional error such as  *      "out of space" or "pipe closed" will terminate with an error. * *      It is possible for both bytes to be written and an error to be returned. * *      APR_EINTR is never returned. * @deffunc apr_status_t apr_file_write_full(apr_file_t *thefile, const void *buf, apr_size_t nbytes, apr_size_t *bytes_written) */APR_DECLARE(apr_status_t) apr_file_write_full(apr_file_t *thefile, const void *buf,                                         apr_size_t nbytes,                                          apr_size_t *bytes_written);/** * put a character into the specified file. * @param ch The character to write. * @param thefile The file descriptor to write to * @deffunc apr_status_t apr_file_putc(char ch, apr_file_t *thefile) */APR_DECLARE(apr_status_t) apr_file_putc(char ch, apr_file_t *thefile);/** * get a character from the specified file. * @param ch The character to write. * @param thefile The file descriptor to write to * @deffunc apr_status_t apr_file_getc(char *ch, apr_file_t *thefile) */APR_DECLARE(apr_status_t) apr_file_getc(char *ch, apr_file_t *thefile);/** * put a character back onto a specified stream. * @param ch The character to write. * @param thefile The file descriptor to write to * @deffunc apr_status_t apr_file_ungetc(char ch, apr_file_t *thefile) */APR_DECLARE(apr_status_t) apr_file_ungetc(char ch, apr_file_t *thefile);/** * Get a string from a specified file. * @param str The buffer to store the string in.  * @param len The length of the string * @param thefile The file descriptor to read from * @deffunc apr_status_t apr_file_gets(char *str, int len, apr_file_t *thefile) */APR_DECLARE(apr_status_t) apr_file_gets(char *str, int len, apr_file_t *thefile);/** * Put the string into a specified file. * @param str The string to write.  * @param thefile The file descriptor to write to * @deffunc apr_status_t apr_file_puts(const char *str, apr_file_t *thefile) */APR_DECLARE(apr_status_t) apr_file_puts(const char *str, apr_file_t *thefile);/** * Flush the file's buffer. * @param thefile The file descriptor to flush * @deffunc apr_status_t apr_file_flush(apr_file_t *thefile) */APR_DECLARE(apr_status_t) apr_file_flush(apr_file_t *thefile);/** * duplicate the specified file descriptor. * @param new_file The structure to duplicate into.  * @param old_file The file to duplicate. * @param p The pool to use for the new file. * @tip *arg1 must point to a valid apr_file_t, or point to NULL * @deffunc apr_status_t apr_file_dup(apr_file_t **new_file, apr_file_t *old_file, apr_pool_t *p) */         APR_DECLARE(apr_status_t) apr_file_dup(apr_file_t **new_file,                                      apr_file_t *old_file,                                      apr_pool_t *p);/** * Move the read/write file offset to a specified byte within a file. * @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. * @tip The third argument is modified to be the offset the pointer          was actually moved to. * @deffunc apr_status_t apr_file_seek(apr_file_t *thefile, apr_seek_where_t where, apr_off_t *offset) */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 file descriptor to use as input to the pipe. * @param out The file descriptor to use as output from the pipe. * @param cont The pool to operate on. * @deffunc apr_status_t apr_file_pipe_create(apr_file_t **in, apr_file_t **out, apr_pool_t *cont) */APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in, apr_file_t **out,                                          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. * @deffunc apr_status_t apr_file_namedpipe_create(const char *filename, apr_fileperms_t perm, apr_pool_t *cont) */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.  * @deffunc apr_status_t apr_file_pipe_timeout_get(apr_file_t *thepipe, apr_interval_time_t *timeout) */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. * @deffunc apr_status_t apr_file_pipe_timeout_set(apr_file_t *thepipe, apr_interval_time_t timeout) */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. * @deffunc apr_status_t apr_file_lock(apr_file_t *thefile, int type) */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. * @deffunc apr_status_t apr_file_unlock(apr_file_t *thefile) */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. * @deffunc apr_status_t apr_file_name_get(const char **new_path, apr_file_t *thefile) */                     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. * @deffunc apr_status_t apr_file_data_get(void **data, const char *key, apr_file_t *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. * @deffunc apr_status_t apr_file_data_set(apr_file_t *file, void *data, const char *key, apr_status_t (*cleanup)(void *)) */                     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 * @deffunc int apr_file_printf(apr_file_t *fptr, const char *format, ...) */ 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. * @tip 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. * @deffunc apr_status_t apr_file_perms_set(const char *fname, apr_fileperms_t perms) */APR_DECLARE(apr_status_t) apr_file_perms_set(const char *fname,                                           apr_fileperms_t perms);/** * 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. * @deffunc apr_status_t apr_dir_make(const char *path, apr_fileperms_t perm, apr_pool_t *cont) */                        APR_DECLARE(apr_status_t) apr_dir_make(const char *path, apr_fileperms_t perm,                         apr_pool_t *cont);/** * 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. * @deffunc apr_status_t apr_dir_remove(const char *path, apr_pool_t *cont) */                        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. * @deffunc apr_status_t apr_file_info_get(apr_finfo_t *finfo, apr_int32_t wanted, apr_file_t *thefile) */ APR_DECLARE(apr_status_t) apr_file_info_get(apr_finfo_t *finfo,                                           apr_int32_t wanted,                                          apr_file_t *thefile);/** * Get the pool used by the file. * @return apr_pool_t the pool * @deffunc apr_pool_t apr_file_pool_get(apr_file_t *f) */APR_POOL_DECLARE_ACCESSOR(file);#ifdef __cplusplus}#endif#endif  /* ! APR_FILE_IO_H */

⌨️ 快捷键说明

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