dio_fcntl
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
dio_fcntl
Референца за `function.dio-fcntl.php` со подобрена типографија и навигација.
dio_fcntl
(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)
dio_fcntl — Извршува c библиотека fcntl на fd
= NULL
На 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_NONBLOCKorO_ASYNC. За да користитеO_ASYNCќе треба да користите PCNTL extension.
-
args-
argsе асоцијативна низа, когаcmdisF_SETLKorF_SETLKW, со следниве клучеви:-
start- offset каде започнува заклучувањето -
length- големина на заклучената област. нула значи до крајот на датотеката -
whence- Каде l_start е релативно до: може да бидеSEEK_SET,SEEK_ENDandSEEK_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) {
// the file descriptor appears locked
echo "The lock can not be cleared. It is held by someone else.";
} else {
echo "Lock successfully set/cleared";
}
dio_close($fd);
?>Белешки
Забелешка: Оваа функција не е имплементирана на платформите Windows.