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/msg-send.xml
2026-01-26 15:33:20 +00:00

177 lines
6.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fd2f14b2e44fbda6dd3f94a1d07f2bc9a7567aff Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.msg-send">
<refnamediv>
<refname>msg_send</refname>
<refpurpose>メッセージキューにメッセージを送信する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>msg_send</methodname>
<methodparam><type>SysvMessageQueue</type><parameter>queue</parameter></methodparam>
<methodparam><type>int</type><parameter>message_type</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type><type>float</type><type>bool</type></type><parameter>message</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>serialize</parameter><initializer>&true;</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>blocking</parameter><initializer>&true;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">error_code</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<simpara>
<function>msg_send</function> は、<parameter>queue</parameter>
で指定したメッセージキューに対して <parameter>message_type</parameter>
で指定した型 (0 より大きい数値である必要があります) のメッセージ
<parameter>message</parameter> を送信します。
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>queue</parameter></term>
<listitem>
<simpara>
メッセージキュー
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message_type</parameter></term>
<listitem>
<simpara>
メッセージのタイプ (0より大きい数値でなければいけません)
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<simpara>
メッセージの本体
</simpara>
<note>
<simpara>
<parameter>serialize</parameter>&false; に設定された場合、
この値は <type>string</type>, <type>int</type>, <type>float</type>
または <type>bool</type> のいずれかでなければなりません。
それら以外の場合、警告が発生します。
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>serialize</parameter></term>
<listitem>
<simpara>
オプションのパラメータ <parameter>serialize</parameter> は、
<parameter>message</parameter> を送信する方法を制御します。
<parameter>serialize</parameter> のデフォルト値は &true; で、
この場合 <parameter>message</parameter> が送信される前に
セッションモジュールと同じ方法でシリアライズされます。
これにより、配列やオブジェクトのような複雑な形式のデータを
他の PHP スクリプトに送信することが可能となります。
また、もし WDDX シリアライザを使用しているなら、あらゆる WDDX
互換クライアントに対して同じことが可能となります。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>blocking</parameter></term>
<listitem>
<simpara>
メッセージがキューに収まらないほど大きい場合は、他のプロセスが
現在キューにあるメッセージを読み込んでキューの空き容量が確保されるまで
スクリプトの実行を待ち続けます。これをブロックモードといいます。
オプションのパラメータ <parameter>blocking</parameter>
&false; に設定することでブロックモードではなくすることが可能で、
この場合、もしキューの空き容量よりも大きなメッセージを送信すると
<function>msg_send</function> はすぐに &false; を返します。
また、オプションのパラメータ <parameter>error_code</parameter>
<constant>MSG_EAGAIN</constant> に設定すると、
少し時間をおいてメッセージを再度送信しなければならないことが戻り値からわかります。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>error_code</parameter></term>
<listitem>
<simpara>
この関数の実行が失敗した場合、オプションのエラーコードがシステムの errno 変数の値に設定されます。
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
&return.success;
</simpara>
<simpara>
処理が正常に完了すると、メッセージキューデータ構造体は以下のように更新されます。
<parameter>msg_lspid</parameter> には呼び出し元のプロセス ID が
設定され、<parameter>msg_qnum</parameter> が 1 増加し、
<parameter>msg_stime</parameter> が現在の時刻に設定されます。
</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>
引数 <parameter>queue</parameter> は、
<classname>SysvMessageQueue</classname> のインスタンスを期待するようになりました。
これより前のバージョンでは、リソースが期待されていました。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>msg_remove_queue</function></member>
<member><function>msg_receive</function></member>
<member><function>msg_stat_queue</function></member>
<member><function>msg_set_queue</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
-->