dio_close
<<<
dio_fcntl dio_open
>>>

8.25 Direct IO
8 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
dio_close
->dio_fcntl
dio_open
dio_read
dio_seek
dio_stat
dio_tcsetattr
dio_truncate
dio_write

8.25.7 dio_fcntl()Exécute une fonction fichier de langage C

[ Exemples avec dio_fcntl ]   PHP 4 >= 4.2.0, PHP 5

mixed  dio_fcntl ( resource   fd , int   cmd , mixed   args )

dio_fcntl exécute l'opération cmd sur le fichier représenté par la ressource fd . Certaines commandes demandent des arguments supplémentaires qui sont fournis dans l'argument args .

args est un tableau associatif lorsque cmd vaut F_SETLK ou F_SETLLW, avec les entrées suivantes :

  • "start" - offset de début de verrou
  • "length" - taille de la surface verrouillée. zéro indique la fin du fichier.
  • "wenth" - l_start est relatif à : peut être SEEK_SET, SEEK_END et SEEK_CUR
  • "type" - type de verrou : peut être F_RDLCK (verrou en lecture), F_WRLCK (verrou en écriture) ou F_UNLCK (déverrouillage)

cmd peut être l'une des opérations suivantes :

  • F_SETLK - Le verrou est posé ou levé. Si le verrou appartient à un autre utilisateur, dio_fcntl retourne -1.
  • F_SETLKW - identique à F_SETLK, mais si le verrou appartient à quelqu'un d'autre, dio_fcntl attent la levée du verrou.
  • F_GETLK - dio_fcntl retourne un tableau associatif (comme décrit ci-dessus) si un autre utilisateur empêche la poste d'un verrou. S'il n'y a aucune empêchement, l'entrée "type" prendra la valeur F_UNLCK.
  • F_DUPFD - trouve les numéros de ressource de fichier les plus petits, disponibles, inférieurs ou égales à args et les retourne.
  • F_SETFL - Configure les descripteurs de fichier à la valeur spécifiée par args , qui peut être O_APPEND,O_NONBLOCK ou O_ASYNC. Pour utiliser O_ASYNC vous aurez besoin de l'extension PCNTL .
Définition et effacement d'un verrou

<?php

$fd
= dio_open('/dev/ttyS0', O_RDWR);

if (
dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
   
// le descripteur de fichier semble verrouillé
   
echo "Le verrou n'a pu être effacé. Il a été posé par quelqu'un d'autre.";
} else {
   echo
"Le verrou a été défini/verrouillé avec succès";
}

dio_close($fd);
?>

Note

Cette fonction n'est pas implémentée sous Windows.

<< dio_fcntl >>
dio_close Direct IO dio_open