(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)
dio_fcntl — Вызывает функцию библиотеки C fcntl для файлового дескриптора
   Функция dio_fcntl() вызывает указанную в
   cmd команду для fd. 
   Если команда требует дополнительных аргументов, то они задаются в
   args.
  
fdФайловый дескриптор, полученный из dio_open().
cmdМожет быть одной из следующих операций:
          F_SETLK - Установка или сброс блокировки. Если
          блокировка кем либо удерживается, dio_fcntl() вернет -1.
         
          F_SETLKW - похожа на F_SETLK,
          но если блокировка кем либо удерживается, 
          dio_fcntl() будет ждать ее освобождения.
         
          F_GETLK - dio_fcntl() 
          вернет ассоциативный массив (как описано ниже) если кто либо мешает
          получить блокировку. Если никто не мешает, то ключ "type" будет содержать
          F_UNLCK.
         
          F_DUPFD - ищет наименьший доступный файловый
          дескриптор, больше или равный args и возвращает его.
         
          F_SETFL - устанавливает файловому дескриптору флаги
          заданные в args, такие как
          O_APPEND, O_NONBLOCK или 
          O_ASYNC. Для использования O_ASYNC 
          вам необходимо воспользоваться расширением PCNTL.
         
args
       args - это ассоциативный массив , если 
       cmd установлен в F_SETLK или
       F_SETLLW, со следующими ключами:
       
start - смещение на начало блокировки
length - размер заблокированной зоны. 0 означает конец файла
          whence - зависит от l_start: может быть
          SEEK_SET,
          SEEK_END и SEEK_CUR
         
          type - тип блокировки: может быть
          F_RDLCK (чтение),
          F_WRLCK (запись) или
          F_UNLCK (блокировки нет)
         
Возвращает результат вызова C-функции.
Пример #1 Установка и снятие блокировки
<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);
if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
   // дескриптор файла заблокирован
   echo "Нельзя снять блокировку, она удерживается другим процессом.";
} else {
   echo "Блокировка успешно установлена/снята";
}
dio_close($fd);
?>
Замечание: Для Windows-платформ эта функция не реализована.