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

📄 apr__portable_8h-source.html

📁 apr函数库使用手册
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Apache Portable Runtime: apr_portable.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.7 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>apr_portable.h</h1><a href="apr__portable_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as</span>
00002 <span class="comment"> * applicable.</span>
00003 <span class="comment"> *</span>
00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
00006 <span class="comment"> * You may obtain a copy of the License at</span>
00007 <span class="comment"> *</span>
00008 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
00009 <span class="comment"> *</span>
00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
00014 <span class="comment"> * limitations under the License.</span>
00015 <span class="comment"> */</span>
00016 
00017 <span class="comment">/* This header file is where you should put ANY platform specific information.</span>
00018 <span class="comment"> * This should be the only header file that programs need to include that </span>
00019 <span class="comment"> * actually has platform dependant code which refers to the .</span>
00020 <span class="comment"> */</span>
00021 <span class="preprocessor">#ifndef APR_PORTABLE_H</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define APR_PORTABLE_H</span>
00023 <span class="preprocessor"></span><span class="comment">/**</span>
00024 <span class="comment"> * @file apr_portable.h</span>
00025 <span class="comment"> * @brief APR Portability Routines</span>
00026 <span class="comment"> */</span>
00027 
00028 <span class="preprocessor">#include "apr.h"</span>
00029 <span class="preprocessor">#include "<a class="code" href="apr__pools_8h.html">apr_pools.h</a>"</span>
00030 <span class="preprocessor">#include "<a class="code" href="apr__thread__proc_8h.html">apr_thread_proc.h</a>"</span>
00031 <span class="preprocessor">#include "<a class="code" href="apr__file__io_8h.html">apr_file_io.h</a>"</span>
00032 <span class="preprocessor">#include "<a class="code" href="apr__network__io_8h.html">apr_network_io.h</a>"</span>
00033 <span class="preprocessor">#include "<a class="code" href="apr__errno_8h.html">apr_errno.h</a>"</span>
00034 <span class="preprocessor">#include "<a class="code" href="apr__global__mutex_8h.html">apr_global_mutex.h</a>"</span>
00035 <span class="preprocessor">#include "<a class="code" href="apr__proc__mutex_8h.html">apr_proc_mutex.h</a>"</span>
00036 <span class="preprocessor">#include "<a class="code" href="apr__time_8h.html">apr_time.h</a>"</span>
00037 <span class="preprocessor">#include "<a class="code" href="apr__dso_8h.html">apr_dso.h</a>"</span>
00038 <span class="preprocessor">#include "<a class="code" href="apr__shm_8h.html">apr_shm.h</a>"</span>
00039 
00040 <span class="preprocessor">#if APR_HAVE_DIRENT_H</span>
00041 <span class="preprocessor"></span><span class="preprocessor">#include &lt;dirent.h&gt;</span>
00042 <span class="preprocessor">#endif</span>
00043 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_FCNTL_H</span>
00044 <span class="preprocessor"></span><span class="preprocessor">#include &lt;fcntl.h&gt;</span>
00045 <span class="preprocessor">#endif</span>
00046 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_PTHREAD_H</span>
00047 <span class="preprocessor"></span><span class="preprocessor">#include &lt;pthread.h&gt;</span>
00048 <span class="preprocessor">#endif</span>
00049 <span class="preprocessor"></span>
00050 <span class="preprocessor">#ifdef __cplusplus</span>
00051 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
00052 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
00053 <span class="comment"></span>
00054 <span class="comment">/**</span>
00055 <span class="comment"> * @defgroup apr_portabile Portability Routines</span>
00056 <span class="comment"> * @ingroup APR </span>
00057 <span class="comment"> * @{</span>
00058 <span class="comment"> */</span>
00059 
00060 <span class="preprocessor">#ifdef WIN32</span>
00061 <span class="preprocessor"></span><span class="comment">/* The primitives for Windows types */</span>
00062 <span class="keyword">typedef</span> HANDLE                <a class="code" href="group__apr__portabile.html#ga0">apr_os_file_t</a>;
00063 <span class="keyword">typedef</span> HANDLE                <a class="code" href="group__apr__portabile.html#ga1">apr_os_dir_t</a>;
00064 <span class="keyword">typedef</span> SOCKET                <a class="code" href="group__apr__portabile.html#ga2">apr_os_sock_t</a>;
00065 <span class="keyword">typedef</span> HANDLE                <a class="code" href="structapr__os__proc__mutex__t.html">apr_os_proc_mutex_t</a>;
00066 <span class="keyword">typedef</span> HANDLE                apr_os_thread_t;
00067 <span class="keyword">typedef</span> HANDLE                <a class="code" href="group__apr__portabile.html#ga4">apr_os_proc_t</a>;
00068 <span class="keyword">typedef</span> DWORD                 apr_os_threadkey_t; 
00069 <span class="keyword">typedef</span> FILETIME              <a class="code" href="group__apr__portabile.html#ga5">apr_os_imp_time_t</a>;
00070 <span class="keyword">typedef</span> SYSTEMTIME            <a class="code" href="group__apr__portabile.html#ga6">apr_os_exp_time_t</a>;
00071 <span class="keyword">typedef</span> HANDLE                <a class="code" href="group__apr__portabile.html#ga7">apr_os_dso_handle_t</a>;
00072 <span class="keyword">typedef</span> HANDLE                <a class="code" href="group__apr__portabile.html#ga8">apr_os_shm_t</a>;
00073 
00074 <span class="preprocessor">#elif defined(OS2)</span>
00075 <span class="preprocessor"></span><span class="keyword">typedef</span> HFILE                 <a class="code" href="group__apr__portabile.html#ga0">apr_os_file_t</a>;
00076 <span class="keyword">typedef</span> HDIR                  <a class="code" href="group__apr__portabile.html#ga1">apr_os_dir_t</a>;
00077 <span class="keyword">typedef</span> <span class="keywordtype">int</span>                   <a class="code" href="group__apr__portabile.html#ga2">apr_os_sock_t</a>;
00078 <span class="keyword">typedef</span> HMTX                  <a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a>;
00079 <span class="keyword">typedef</span> TID                   apr_os_thread_t;
00080 <span class="keyword">typedef</span> PID                   <a class="code" href="group__apr__portabile.html#ga4">apr_os_proc_t</a>;
00081 <span class="keyword">typedef</span> PULONG                apr_os_threadkey_t; 
00082 <span class="keyword">typedef</span> <span class="keyword">struct </span>timeval        <a class="code" href="group__apr__portabile.html#ga5">apr_os_imp_time_t</a>;
00083 <span class="keyword">typedef</span> <span class="keyword">struct </span>tm             <a class="code" href="group__apr__portabile.html#ga6">apr_os_exp_time_t</a>;
00084 <span class="keyword">typedef</span> HMODULE               <a class="code" href="group__apr__portabile.html#ga7">apr_os_dso_handle_t</a>;
00085 <span class="keyword">typedef</span> <span class="keywordtype">void</span>*                 <a class="code" href="group__apr__portabile.html#ga8">apr_os_shm_t</a>;
00086 
00087 <span class="preprocessor">#elif defined(__BEOS__)</span>
00088 <span class="preprocessor"></span><span class="preprocessor">#include &lt;kernel/OS.h&gt;</span>
00089 <span class="preprocessor">#include &lt;kernel/image.h&gt;</span>
00090 
00091 <span class="keyword">struct </span><a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a> {
00092         sem_id sem;
00093         int32  ben;
00094 };
00095 
00096 <span class="keyword">typedef</span> <span class="keywordtype">int</span>                   <a class="code" href="group__apr__portabile.html#ga0">apr_os_file_t</a>;
00097 <span class="keyword">typedef</span> DIR                   <a class="code" href="group__apr__portabile.html#ga1">apr_os_dir_t</a>;
00098 <span class="keyword">typedef</span> <span class="keywordtype">int</span>                   <a class="code" href="group__apr__portabile.html#ga2">apr_os_sock_t</a>;
00099 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a>  <a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a>;
00100 <span class="keyword">typedef</span> thread_id             apr_os_thread_t;
00101 <span class="keyword">typedef</span> thread_id             <a class="code" href="group__apr__portabile.html#ga4">apr_os_proc_t</a>;
00102 <span class="keyword">typedef</span> <span class="keywordtype">int</span>                   apr_os_threadkey_t;
00103 <span class="keyword">typedef</span> <span class="keyword">struct </span>timeval        <a class="code" href="group__apr__portabile.html#ga5">apr_os_imp_time_t</a>;
00104 <span class="keyword">typedef</span> <span class="keyword">struct </span>tm             <a class="code" href="group__apr__portabile.html#ga6">apr_os_exp_time_t</a>;
00105 <span class="keyword">typedef</span> image_id              <a class="code" href="group__apr__portabile.html#ga7">apr_os_dso_handle_t</a>;
00106 <span class="keyword">typedef</span> <span class="keywordtype">void</span>*                 <a class="code" href="group__apr__portabile.html#ga8">apr_os_shm_t</a>;
00107 
00108 <span class="preprocessor">#elif defined(NETWARE)</span>
00109 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">int</span>                   <a class="code" href="group__apr__portabile.html#ga0">apr_os_file_t</a>;
00110 <span class="keyword">typedef</span> DIR                   <a class="code" href="group__apr__portabile.html#ga1">apr_os_dir_t</a>;
00111 <span class="keyword">typedef</span> <span class="keywordtype">int</span>                   <a class="code" href="group__apr__portabile.html#ga2">apr_os_sock_t</a>;
00112 <span class="keyword">typedef</span> NXMutex_t             <a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a>;
00113 <span class="keyword">typedef</span> NXThreadId_t          apr_os_thread_t;
00114 <span class="keyword">typedef</span> <span class="keywordtype">long</span>                  <a class="code" href="group__apr__portabile.html#ga4">apr_os_proc_t</a>;
00115 <span class="keyword">typedef</span> NXKey_t               apr_os_threadkey_t; 
00116 <span class="keyword">typedef</span> <span class="keyword">struct </span>timeval        <a class="code" href="group__apr__portabile.html#ga5">apr_os_imp_time_t</a>;
00117 <span class="keyword">typedef</span> <span class="keyword">struct </span>tm             <a class="code" href="group__apr__portabile.html#ga6">apr_os_exp_time_t</a>;
00118 <span class="keyword">typedef</span> <span class="keywordtype">void</span> *                <a class="code" href="group__apr__portabile.html#ga7">apr_os_dso_handle_t</a>;
00119 <span class="keyword">typedef</span> <span class="keywordtype">void</span>*                 <a class="code" href="group__apr__portabile.html#ga8">apr_os_shm_t</a>;
00120 
00121 <span class="preprocessor">#else</span>
00122 <span class="preprocessor"></span><span class="comment">/* Any other OS should go above this one.  This is the lowest common</span>
00123 <span class="comment"> * denominator typedefs for  all UNIX-like systems.  :)</span>
00124 <span class="comment"> */</span>
00125 <span class="comment"></span>
00126 <span class="comment">/** Basic OS process mutex structure. */</span>
<a name="l00127"></a><a class="code" href="structapr__os__proc__mutex__t.html">00127</a> <span class="keyword">struct </span><a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a> {
00128 <span class="preprocessor">#if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || APR_HAS_FLOCK_SERIALIZE</span>
00129 <span class="preprocessor"></span><span class="comment">    /** Value used for SYS V Semaphore, FCNTL and FLOCK serialization */</span>
00130     <span class="keywordtype">int</span> crossproc;
00131 <span class="preprocessor">#endif</span>
00132 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAS_PROC_PTHREAD_SERIALIZE</span>
00133 <span class="preprocessor"></span><span class="comment">    /** Value used for PTHREAD serialization */</span>
00134     pthread_mutex_t *pthread_interproc;
00135 <span class="preprocessor">#endif</span>
00136 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAS_THREADS</span>
00137 <span class="preprocessor"></span>    <span class="comment">/* If no threads, no need for thread locks */</span>
00138 <span class="preprocessor">#if APR_USE_PTHREAD_SERIALIZE</span>
00139 <span class="preprocessor"></span><span class="comment">    /** This value is currently unused within APR and Apache */</span> 
00140     pthread_mutex_t *intraproc;
00141 <span class="preprocessor">#endif</span>
00142 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00143 <span class="preprocessor"></span>};
00144 
<a name="l00145"></a><a class="code" href="group__apr__portabile.html#ga0">00145</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span>                   <a class="code" href="group__apr__portabile.html#ga0">apr_os_file_t</a>;        <span class="comment">/**&lt; native file */</span>
<a name="l00146"></a><a class="code" href="group__apr__portabile.html#ga1">00146</a> <span class="keyword">typedef</span> DIR                   <a class="code" href="group__apr__portabile.html#ga1">apr_os_dir_t</a>;         <span class="comment">/**&lt; native dir */</span>
<a name="l00147"></a><a class="code" href="group__apr__portabile.html#ga2">00147</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span>                   <a class="code" href="group__apr__portabile.html#ga2">apr_os_sock_t</a>;        <span class="comment">/**&lt; native dir */</span>
<a name="l00148"></a><a class="code" href="group__apr__portabile.html#ga3">00148</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a>  <a class="code" href="group__apr__portabile.html#ga3">apr_os_proc_mutex_t</a>; <span class="comment">/**&lt; native proces</span>
00149 <span class="comment">                                                          *   mutex</span>
00150 <span class="comment">                                                          */</span>
00151 <span class="preprocessor">#if APR_HAS_THREADS &amp;&amp; APR_HAVE_PTHREAD_H </span>
00152 <span class="preprocessor"></span><span class="keyword">typedef</span> pthread_t             apr_os_thread_t;      <span class="comment">/**&lt; native thread */</span>
00153 <span class="keyword">typedef</span> pthread_key_t         apr_os_threadkey_t;   <span class="comment">/**&lt; native thread address</span>
00154 <span class="comment">                                                     *   space */</span>
00155 <span class="preprocessor">#endif</span>
<a name="l00156"></a><a class="code" href="group__apr__portabile.html#ga4">00156</a> <span class="preprocessor"></span><span class="keyword">typedef</span> pid_t                 <a class="code" href="group__apr__portabile.html#ga4">apr_os_proc_t</a>;        <span class="comment">/**&lt; native pid */</span>
<a name="l00157"></a><a class="code" href="group__apr__portabile.html#ga5">00157</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>timeval        <a class="code" href="group__apr__portabile.html#ga5">apr_os_imp_time_t</a>;    <span class="comment">/**&lt; native timeval */</span>
<a name="l00158"></a><a class="code" href="group__apr__portabile.html#ga6">00158</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>tm             <a class="code" href="group__apr__portabile.html#ga6">apr_os_exp_time_t</a>;    <span class="comment">/**&lt; native tm */</span><span class="comment"></span>
00159 <span class="comment">/** @var apr_os_dso_handle_t</span>
00160 <span class="comment"> * native dso types</span>
00161 <span class="comment"> */</span>
00162 <span class="preprocessor">#if defined(HPUX) || defined(HPUX10) || defined(HPUX11)</span>
00163 <span class="preprocessor"></span><span class="preprocessor">#include &lt;dl.h&gt;</span>
00164 <span class="keyword">typedef</span> shl_t                 <a class="code" href="group__apr__portabile.html#ga7">apr_os_dso_handle_t</a>;
00165 <span class="preprocessor">#elif defined(DARWIN)</span>
00166 <span class="preprocessor"></span><span class="preprocessor">#include &lt;mach-o/dyld.h&gt;</span>

⌨️ 快捷键说明

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