(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)
dio_fcntl — Modifiziert einen Dateideskriptor
   Die Funktion dio_fcntl() führt die mit
   cmd festgelegte Operation auf dem
   Dateideskriptor fd aus. Für einige
   dieser Operationen müssen zusätzliche Argumente im
   Parameter args übergeben werden.
  
fdEin von dio_open() zurückgegebener Dateideskriptor.
cmdEine der folgenden Operationen:
          F_SETLK - Setzt oder löscht eine
          Dateisperre. Wenn diese Sperre bereits von jemand anderem
          gehalten wird, gibt dio_fcntl() -1
          zurück.
         
          F_SETLKW - ähnlich F_SETLK,
          hier wird aber in dem Fall, dass bereits jemand anderes die Sperre
          hält, gewartet bis diese wieder freigegeben wird.
         
          F_GETLK - dio_fcntl()
          gibt ein assoziatives Array mit Informationen (wie weiter unten
          beschrieben) zurück, wenn jemand anderes bereits eine Sperre hält.
          Existiert keine andere Sperre, wird das Element "type" auf
          F_UNLCK gesetzt.
         
          F_DUPFD -
          Findet den kleinsten verfügbaren Dateideskriptor >=
          args und gibt diesen zurück.
         
          F_SETFL -
          Setzt die Flags des Dateideskriptors auf den in
          args angegebenen Wert. Die verfügbaren Flags
          sind O_APPEND, O_NONBLOCK
          und O_ASYNC. Um O_ASYNC
          setzen zu können, benötigen Sie die
          PCNTL-Extension.
         
args
       Die cmd-Operationen F_SETLK
       und F_SETLLW erwarten ein Array mit den folgenden
       Elementen:
       
          start - Offset an dem die Sperre beginnt
         
          length - Länge des gesperrten Bereichs, 0 bedeutet dabei "bis zum
          Dateiende"
         
          whence - Die Position, auf die sich start
          bezieht, dabei steht SEEK_SET für den
          Dateianfang, SEEK_END für das Dateiende und
          SEEK_CUR für die aktuelle
          Schreib-/Leseposition.
         
          type - Art der Sperre: F_RDLCK (Lesesperre),
          F_WRLCK (Schreibsperre) oder
          F_UNLCK (Sperre aufheben)
         
Gibt das Ergebnis des entsprechenden C-Aufrufs zurück.
Beispiel #1 Setzen und Löschen einer Sperre
<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);
if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
    // Die Datei ist anscheinend schon anderweitig gesperrt
    echo "Sperrung fehlgeschlagen, die Datei wird schon von jemand anderem gesperrt.";
} else {
    echo "Sperrung erfolgreich durchgeführt";
}
dio_close($fd);
?>Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.
