1
0
mirror of https://github.com/php/doc-ja.git synced 2026-03-23 22:52:11 +01:00
Files
archived-doc-ja/reference/sem/functions/sem-get.xml
2026-01-26 15:33:20 +00:00

156 lines
5.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fd2f14b2e44fbda6dd3f94a1d07f2bc9a7567aff Maintainer: hirokawa Status: ready -->
<!-- Credits: mumumu -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.sem-get">
<refnamediv>
<refname>sem_get</refname>
<refpurpose>セマフォ ID を得る</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>SysvSemaphore</type><type>false</type></type><methodname>sem_get</methodname>
<methodparam><type>int</type><parameter>key</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>max_acquire</parameter><initializer>1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>permissions</parameter><initializer>0666</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>auto_release</parameter><initializer>&true;</initializer></methodparam>
</methodsynopsis>
<simpara>
<function>sem_get</function> は、
System V セマフォを指定したキーでアクセスするために使用可能な
ID を返します。
</simpara>
<simpara>
同じキーで <function>sem_get</function> を 2 度コールした場合、
別のセマフォ ID が返されます。
しかし、どちらの ID も同じそのセマフォをアクセスします。
</simpara>
<simpara>
<parameter>key</parameter><literal>0</literal> を指定すると、
<function>sem_get</function> が呼び出される度に新しい非公開のセマフォが作られます。
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>key</parameter></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>max_acquire</parameter></term>
<listitem>
<simpara>
同時にセマフォを得ることが可能なプロセス数を
<parameter>max_acquire</parameter> にセットします。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>permissions</parameter></term>
<listitem>
<simpara>
セマフォのパーミッション。
実際には、この値はプロセスが現在そのセマフォに付随している
唯一のプロセスであることがわかった場合にのみセットされます。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>auto_release</parameter></term>
<listitem>
<simpara>
リクエストの終了時に自動的にセマフォを開放するかどうかを指定します。
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
成功した場合に正のセマフォ ID、エラー時には &false; を返します。
</simpara>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
成功した時、
この関数は <classname>SysvSemaphore</classname> クラスのインスタンスを返すようになりました。
これより前のバージョンでは、リソースが返されていました。
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>auto_release</parameter> の型が
<type>int</type> から <type>bool</type> に変更されました
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<simpara>
PHP 以外のところで作られたセマフォに <function>sem_get</function> でアクセスするときには、
3 つのセマフォのセットとして作ったものでなければいけないことに注意しましょう
(たとえば、C の <literal>semget()</literal> 関数で作るなら、<literal>nsems</literal> に 3 を指定します)。
そうしないと、PHP からそのセマフォにアクセスできなくなります。
</simpara>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>sem_acquire</function></member>
<member><function>sem_release</function></member>
<member><function>ftok</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->