310 of 410 menu

Função flock

A função flock define ou remove um bloqueio de arquivo. Como primeiro parâmetro, ela aceita um ponteiro para o arquivo, obtido através de fopen, como segundo parâmetro - o tipo de bloqueio (LOCK_SH, LOCK_EX ou LOCK_UN), e como terceiro parâmetro opcional - um flag para operação não bloqueante.

Sintaxe

flock(resource $handle, int $operation, int &$would_block = null): bool

Exemplo

Bloqueio de arquivo para acesso exclusivo (escrita):

<?php $file = fopen("data.txt", "c+"); if (flock($file, LOCK_EX)) { ftruncate($file, 0); fwrite($file, "Novos dados"); flock($file, LOCK_UN); } fclose($file); ?>

Exemplo

Bloqueio compartilhado para leitura:

<?php $file = fopen("data.txt", "r"); if (flock($file, LOCK_SH)) { $content = fread($file, filesize("data.txt")); flock($file, LOCK_UN); } fclose($file); echo $content; ?>

Exemplo

Tentativa não bloqueante de adquirir o bloqueio:

<?php $file = fopen("data.txt", "c+"); if (flock($file, LOCK_EX | LOCK_NB, $would_block)) { if ($would_block) { echo "Arquivo está bloqueado por outro processo"; } else { fwrite($file, "Dados"); flock($file, LOCK_UN); } } fclose($file); ?>

Veja também

  • a função fopen,
    que abre um arquivo
  • a função fclose,
    que fecha um arquivo
  • a função is_writable,
    que verifica a possibilidade de escrita
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar