Files
archived-doc-pt-br/reference/sem/functions/sem-get.xml
2026-01-26 15:33:25 +00:00

156 lines
4.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: fd2f14b2e44fbda6dd3f94a1d07f2bc9a7567aff Maintainer: leonardolara Status: ready -->
<!-- CREDITS: leonardolara -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.sem-get">
<refnamediv>
<refname>sem_get</refname>
<refpurpose>Obtém um ID de semáforo</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> retorna um id que pode ser usado para
acessar o semáforo do System V com a chave fornecida em <parameter>key</parameter>.
</simpara>
<simpara>
Uma segunda chamada a <function>sem_get</function> com a mesma chave
retornará um identificador de semáforo diferente, mas ambos
os identificadores acessam o mesmo semáforo subjacente.
</simpara>
<simpara>
Se <parameter>key</parameter> for <literal>0</literal>, um novo semáforo privado
será criado para cada chamada a <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>
O número de processos que podem adquirir o semáforo simultaneamente
é definido como <parameter>max_acquire</parameter>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>permissions</parameter></term>
<listitem>
<simpara>
As permissões do semáforo. Na verdade, este valor é
definido somente se o processo descobrir que é o único processo atualmente
anexado ao semáforo.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>auto_release</parameter></term>
<listitem>
<simpara>
Especifica se o semáforo deve ser liberado automaticamente mediante
desligamento da solicitação.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
Retorna um identificador de semáforo positivo em caso de sucesso, ou &false; em caso de
erro.
</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>
Em caso de sucesso, esta função agora retorna uma instância de <classname>SysvSemaphore</classname>;
anteriormente, um <type>resource</type> era retornado.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
O tipo de <parameter>auto_release</parameter> foi alterado de
<type>int</type> para <type>bool</type>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<simpara>
Ao usar <function>sem_get</function> para acessar um semáforo criado
fora do PHP, observe que o semáforo deve ter sido criado como um conjunto de 3
semáforos (por exemplo, especificando 3 como o parâmetro <literal>nsems</literal>
ao chamar a função <literal>semget()</literal> do C),
caso contrário, o PHP não conseguirá acessar o semáforo.
</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
-->