• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

apr_file_io.h

Go to the documentation of this file.
00001 /* Licensed to the Apache Software Foundation (ASF) under one or more
00002  * contributor license agreements.  See the NOTICE file distributed with
00003  * this work for additional information regarding copyright ownership.
00004  * The ASF licenses this file to You under the Apache License, Version 2.0
00005  * (the "License"); you may not use this file except in compliance with
00006  * the License.  You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef APR_FILE_IO_H
00018 #define APR_FILE_IO_H
00019 
00020 /**
00021  * @file apr_file_io.h
00022  * @brief APR File I/O Handling
00023  */
00024 
00025 #include "apr.h"
00026 #include "apr_pools.h"
00027 #include "apr_time.h"
00028 #include "apr_errno.h"
00029 #include "apr_file_info.h"
00030 #include "apr_inherit.h"
00031 
00032 #define APR_WANT_STDIO          /**< for SEEK_* */
00033 #define APR_WANT_IOVEC          /**< for apr_file_writev */
00034 #include "apr_want.h"
00035 
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif /* __cplusplus */
00039 
00040 /**
00041  * @defgroup apr_file_io File I/O Handling Functions
00042  * @ingroup APR 
00043  * @{
00044  */
00045 
00046 /**
00047  * @defgroup apr_file_open_flags File Open Flags/Routines
00048  * @{
00049  */
00050 
00051 /* Note to implementors: Values in the range 0x00100000--0x80000000
00052    are reserved for platform-specific values. */
00053 
00054 #define APR_FOPEN_READ       0x00001  /**< Open the file for reading */
00055 #define APR_FOPEN_WRITE      0x00002  /**< Open the file for writing */
00056 #define APR_FOPEN_CREATE     0x00004  /**< Create the file if not there */
00057 #define APR_FOPEN_APPEND     0x00008  /**< Append to the end of the file */
00058 #define APR_FOPEN_TRUNCATE   0x00010  /**< Open the file and truncate
00059                                          to 0 length */
00060 #define APR_FOPEN_BINARY     0x00020  /**< Open the file in binary mode */
00061 #define APR_FOPEN_EXCL       0x00040  /**< Open should fail if APR_CREATE
00062                                          and file exists. */
00063 #define APR_FOPEN_BUFFERED   0x00080  /**< Open the file for buffered I/O */
00064 #define APR_FOPEN_DELONCLOSE 0x00100  /**< Delete the file after close */
00065 #define APR_FOPEN_XTHREAD    0x00200  /**< Platform dependent tag to open
00066                                          the file for use across multiple
00067                                          threads */
00068 #define APR_FOPEN_SHARELOCK  0x00400  /**< Platform dependent support for
00069                                          higher level locked read/write
00070                                          access to support writes across
00071                                          process/machines */
00072 #define APR_FOPEN_NOCLEANUP  0x00800  /**< Do not register a cleanup
00073                                          when the file is opened */
00074 #define APR_FOPEN_SENDFILE_ENABLED 0x01000 /**< Advisory flag that this
00075                                              file should support
00076                                              apr_socket_sendfile operation */
00077 #define APR_FOPEN_LARGEFILE   0x04000 /**< Platform dependent flag to enable
00078                                        * large file support, see WARNING below
00079                                        */
00080 #define APR_FOPEN_SPARSE      0x08000 /**< Platform dependent flag to enable
00081                                        * sparse file support, see WARNING below
00082                                        */
00083 
00084 /* backcompat */
00085 #define APR_READ             APR_FOPEN_READ       /**< @deprecated @see APR_FOPEN_READ */
00086 #define APR_WRITE            APR_FOPEN_WRITE      /**< @deprecated @see APR_FOPEN_WRITE */   
00087 #define APR_CREATE           APR_FOPEN_CREATE     /**< @deprecated @see APR_FOPEN_CREATE */   
00088 #define APR_APPEND           APR_FOPEN_APPEND     /**< @deprecated @see APR_FOPEN_APPEND */   
00089 #define APR_TRUNCATE         APR_FOPEN_TRUNCATE   /**< @deprecated @see APR_FOPEN_TRUNCATE */   
00090 #define APR_BINARY           APR_FOPEN_BINARY     /**< @deprecated @see APR_FOPEN_BINARY */   
00091 #define APR_EXCL             APR_FOPEN_EXCL       /**< @deprecated @see APR_FOPEN_EXCL */   
00092 #define APR_BUFFERED         APR_FOPEN_BUFFERED   /**< @deprecated @see APR_FOPEN_BUFFERED */   
00093 #define APR_DELONCLOSE       APR_FOPEN_DELONCLOSE /**< @deprecated @see APR_FOPEN_DELONCLOSE */   
00094 #define APR_XTHREAD          APR_FOPEN_XTHREAD    /**< @deprecated @see APR_FOPEN_XTHREAD */   
00095 #define APR_SHARELOCK        APR_FOPEN_SHARELOCK  /**< @deprecated @see APR_FOPEN_SHARELOCK */   
00096 #define APR_FILE_NOCLEANUP   APR_FOPEN_NOCLEANUP  /**< @deprecated @see APR_FOPEN_NOCLEANUP */   
00097 #define APR_SENDFILE_ENABLED APR_FOPEN_SENDFILE_ENABLED /**< @deprecated @see APR_FOPEN_SENDFILE_ENABLED */   
00098 #define APR_LARGEFILE        APR_FOPEN_LARGEFILE  /**< @deprecated @see APR_FOPEN_LARGEFILE */   
00099 
00100 /** @warning APR_FOPEN_LARGEFILE flag only has effect on some
00101  * platforms where sizeof(apr_off_t) == 4.  Where implemented, it
00102  * allows opening and writing to a file which exceeds the size which
00103  * can be represented by apr_off_t (2 gigabytes).  When a file's size
00104  * does exceed 2Gb, apr_file_info_get() will fail with an error on the
00105  * descriptor, likewise apr_stat()/apr_lstat() will fail on the
00106  * filename.  apr_dir_read() will fail with APR_INCOMPLETE on a
00107  * directory entry for a large file depending on the particular
00108  * APR_FINFO_* flags.  Generally, it is not recommended to use this
00109  * flag.
00110  *
00111  * @warning APR_FOPEN_SPARSE may, depending on platform, convert a
00112  * normal file to a sparse file.  Some applications may be unable
00113  * to decipher a sparse file, so it's critical that the sparse file
00114  * flag should only be used for files accessed only by APR or other
00115  * applications known to be able to decipher them.  APR does not
00116  * guarantee that it will compress the file into sparse segments
00117  * if it was previously created and written without the sparse flag.
00118  * On platforms which do not understand, or on file systems which
00119  * cannot handle sparse files, the flag is ignored by apr_file_open().
00120  */
00121 
00122 /** @} */
00123 
00124 /**
00125  * @defgroup apr_file_seek_flags File Seek Flags
00126  * @{
00127  */
00128 
00129 /* flags for apr_file_seek */
00130 /** Set the file position */
00131 #define APR_SET SEEK_SET
00132 /** Current */
00133 #define APR_CUR SEEK_CUR
00134 /** Go to end of file */
00135 #define APR_END SEEK_END
00136 /** @} */
00137 
00138 /**
00139  * @defgroup apr_file_attrs_set_flags File Attribute Flags
00140  * @{
00141  */
00142 
00143 /* flags for apr_file_attrs_set */
00144 #define APR_FILE_ATTR_READONLY   0x01          /**< File is read-only */
00145 #define APR_FILE_ATTR_EXECUTABLE 0x02          /**< File is executable */
00146 #define APR_FILE_ATTR_HIDDEN     0x04          /**< File is hidden */
00147 /** @} */
00148 
00149 /**
00150  * @defgroup apr_file_writev{_full} max iovec size
00151  * @{
00152  */
00153 #if defined(DOXYGEN)
00154 #define APR_MAX_IOVEC_SIZE 1024                /**< System dependent maximum 
00155                                                     size of an iovec array */
00156 #elif defined(IOV_MAX)
00157 #define APR_MAX_IOVEC_SIZE IOV_MAX
00158 #elif defined(MAX_IOVEC)
00159 #define APR_MAX_IOVEC_SIZE MAX_IOVEC
00160 #else
00161 #define APR_MAX_IOVEC_SIZE 1024
00162 #endif
00163 /** @} */
00164 
00165 /** File attributes */
00166 typedef apr_uint32_t apr_fileattrs_t;
00167 
00168 /** Type to pass as whence argument to apr_file_seek. */
00169 typedef int       apr_seek_where_t;
00170 
00171 /**
00172  * Structure for referencing files.
00173  */
00174 typedef struct apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180  */
00181 
00182 #define APR_FLOCK_SHARED        1       /**< Shared lock. More than one process
00183                                            c667eass="code" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t         apr_file_t;
00175 
00176 /* File lock types/flags */
00177 /**
00178  * @defgroup apr_file_lock_types File Lock Types
00179  * @{
00180