(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)
dio_fcntl — Lleva a cabo la función fcntl de la biblioteca C en el fichero fd
   La función dio_fcntl() realiza la operación
   especificada por cmd sobre el descriptor de
   fichero fd. Algunos comandos requieren que se
   proporcionen parámetros adicionales en args.
  
fdDescriptor de fichero devuelto por dio_open().
cmdPuede ser una de las siguientes operaciones:
          F_SETLK - Se asigna o quita el bloqueo. Si está bloqueado
          por otro proceso, dio_fcntl() devuelve
          -1.
         
          F_SETLKW - como F_SETLK,
          pero en caso de que esté bloqueado por otro proceso,
          dio_fcntl() espera a que éste se libere.
         
          F_GETLK - dio_fcntl() 
          devuelve un array asociativo (como se describe a continuación) si algún proceso
          previene el bloqueo. Si no hubiera impedimento, se asignará la
          clave "type" a F_UNLCK.
         
          F_DUPFD - encuentra el número de descriptor más
          bajo disponible que sea igual o superior a args
          y lo devuelve.
         
          F_SETFL - Establece al descriptor de fichero las
          banderas especificadas en args, de entre
          O_APPEND, O_NONBLOCK o 
          O_ASYNC. Para usar O_ASYNC 
          debe usarse la extensión PCNTL.
         
args
       args es un array asociativo, cuando
       cmd sea F_SETLK o
       F_SETLLW, con las siguientes claves:
       
start - posición donde comienza el bloqueo
length - tamaño del area bloqueada. Cero significa hasta el final del fichero
          whence - Desde dónde se contabiliza l_start: puede ser
          SEEK_SET,
          SEEK_END y SEEK_CUR
         
          type - tipo de bloqueo: puede ser
          F_RDLCK (bloqueo de lectura),
          F_WRLCK (bloqueo de escritura) o
          F_UNLCK (desbloqueo)
         
Devuelve el resultado de la llamada a C.
Ejemplo #1 Bloqueando y desbloqueando
<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);
if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
   // parece el descriptor de fichero está bloqueado
   echo "No se puede desbloquear. Pertenece a algún otro proceso.";
} else {
   echo "Bloqueo/desbloqueo con éxito";
}
dio_close($fd);
?>
Nota: Esta función no está implementada en plataformas Windows.