<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.shmop.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.shmop-open.php',
    1 => 'shmop_open',
    2 => 'Erstellt oder &ouml;ffnet einen gemeinsamen Speicherbereich',
  ),
  'up' => 
  array (
    0 => 'ref.shmop.php',
    1 => 'Shared Memory Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.shmop-delete.php',
    1 => 'shmop_delete',
  ),
  'next' => 
  array (
    0 => 'function.shmop-read.php',
    1 => 'shmop_read',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/shmop/functions/shmop-open.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.shmop-open" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">shmop_open</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">shmop_open</span> &mdash; <span class="dc-title">Erstellt oder öffnet einen gemeinsamen Speicherbereich</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.shmop-open-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>shmop_open</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$key</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$mode</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$permissions</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$size</code></span><br>): <span class="type"><span class="type"><a href="class.shmop.php" class="type Shmop">Shmop</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="simpara">
   <span class="function"><strong>shmop_open()</strong></span> kann einen gemeinsamen Speicherbereich
   erstellen oder öffnen.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.shmop-open-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">key</code></dt>
     <dd>
      <span class="simpara">
       Die System-ID des gemeinsam genutzten Speicherbereichs. Dieser
       Parameter kann als Dezimal- oder Hexadezimalzahl übergeben werden.
      </span>
     </dd>
    
    
     <dt><code class="parameter">mode</code></dt>
     <dd>
      <p class="para">
       Folgende Flags können benutzt werden:
       <ul class="itemizedlist">
        <li class="listitem">
         <span class="simpara">
          &quot;a&quot; zum Zugriff (access) auf einen gemeinsamen Speicherbereich
          (setzt SHM_RDONLY für shmat). Benutzen Sie dieses Flag, wenn Sie
          einen bestehenden gemeinsamen Speicherbereich nur zum Lesen öffnen
          wollen.
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          &quot;c&quot; zum Erzeugen (create) eines gemeinsamen Speicherbereichs (setzt
          IPC_CREATE). Benutzen Sie dieses Flag, wenn Sie einen neuen
          gemeinsamen Speicherbereich erzeugen wollen, oder, falls bereits ein
          Segment mit derselben ID existiert, zum Öffnen dieses Bereichs für
          Lese- und Schreibzugriffe.
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          &quot;w&quot; für Lese- und Schreibzugriffe. Benutzen Sie dieses Flag, wenn
          Sie in einen gemeinsamen Speicherbereich schreiben oder daraus lesen
          müssen. Das wird meistens der Fall sein.
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          &quot;n&quot; zum Erzeugen eines neuen gemeinsamen Speicherbereichs (setzt
          IPC_CREATE|IPC_EXCL). Benutzen Sie dieses Flag, wenn Sie einen neuen
          gemeinsames Speicherbereich erzeugen wollen. Falls schon einen
          Bereich mit diesem Flag existiert, schlägt die Funktion fehl. Dies
          ist aus Sicherheitsgründen nützlich, denn damit können Sie
          vermeiden, dass konkurrierende Prozesse ausgenutzt werden.
         </span>
        </li>
       </ul>
      </p>
     </dd>
    
    
     <dt><code class="parameter">permissions</code></dt>
     <dd>
      <span class="simpara">
       Die Zugriffsberechtigungen für die gemeinsamen Speicherbereiche sind
       dieselben wie für Dateien. Diese Berechtigungen müssen als Oktalwerte
       übergeben werden, zum Beispiel <code class="literal">0644</code>.
      </span>
     </dd>
    
    
     <dt><code class="parameter">size</code></dt>
     <dd>
      <span class="simpara">
       Die Größe des erzeugten gemeinsam genutzten Speicherbereichs in Byte.
      </span>
     </dd>
    
   </dl>
   <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
    <span class="simpara">
     Beachten Sie: der dritte und vierte Parameter sollten mit 0 angegeben
     sein, falls Sie einen bereits existierenden Speicherbereich öffnen.
    </span>
   </p></blockquote>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.shmop-open-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="simpara">
   Bei Erfolg gibt <span class="function"><strong>shmop_open()</strong></span> eine
   <span class="classname"><a href="class.shmop.php" class="classname">Shmop</a></span>-Instanz zurück, die verwendet werden kann, um
   auf den erstellten gemeinsamen Speicherbereich zuzugreifen. Bei einem
   Fehler wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-function.shmop-open-errors">
  <h3 class="title">Fehler/Exceptions</h3>
  <p class="simpara">
   Wenn <code class="parameter">mode</code> ungültig ist oder
   <code class="parameter">size</code> kleiner oder gleich Null ist, wird ein
   <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> ausgelöst. Bei anderen Fehlern wird ein
   <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> ausgegeben.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.shmop-open-changelog">
  <h3 class="title">Changelog</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Version</th>
      <th>Beschreibung</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.0.0</td>
      <td>
       Bei Erfolg gibt diese Funktion nun eine
       <span class="classname"><a href="class.shmop.php" class="classname">Shmop</a></span>-Instanz zurück; vorher wurde eine
       <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> zurückgegeben.
      </td>
     </tr>

     <tr>
      <td>8.0.0</td>
      <td>
       Wenn <code class="parameter">mode</code> ungültig ist oder
       <code class="parameter">size</code> kleiner oder gleich Null ist, wird ein
       <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> ausgelöst; vorher wurde stattdessen
       ein <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> ausgegeben und die Funktion gab
       <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurück.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.shmop-open-examples">
  <h3 class="title">Beispiele</h3>
  <div class="example" id="example-1">
   <p><strong>Beispiel #1 Einen neuen gemeinsamen Speicherbereich erstellen</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$shm_key </span><span style="color: #007700">= </span><span style="color: #0000BB">ftok</span><span style="color: #007700">(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">, </span><span style="color: #DD0000">'t'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$shm_id </span><span style="color: #007700">= </span><span style="color: #0000BB">shmop_open</span><span style="color: #007700">(</span><span style="color: #0000BB">$shm_key</span><span style="color: #007700">, </span><span style="color: #DD0000">"c"</span><span style="color: #007700">, </span><span style="color: #0000BB">0644</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <p class="simpara">
   In diesem Beispiel wurde ein gemeinsamer Speicherbereich geöffnet. Die
   System-ID wurde von der Funktion <span class="function"><a href="function.ftok.php" class="function">ftok()</a></span> zurückgegeben.
  </p>
 </div>

 <div class="refsect1 seealso" id="refsect1-function.shmop-open-seealso">
  <h3 class="title">Siehe auch</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.shmop-close.php" class="function" rel="rdfs-seeAlso">shmop_close()</a> - Schlie&szlig;t einen gemeinsamen Speicherbereich</span></li>
   <li><span class="function"><a href="function.shmop-delete.php" class="function" rel="rdfs-seeAlso">shmop_delete()</a> - L&ouml;scht einen gemeinsamen Speicherbereich</span></li>
  </ul>
 </div>

</div><?php manual_footer($setup); ?>