Javascript debugger
Website design
↑
The dio_fcntl() function performs the operation specified by cmd on the file descriptor fd. Some commands require additional arguments args to be supplied.
This function is not implemented on Windows platforms.
The file descriptor returned by dio_open().
Can be one of the following operations:
F_SETLK
- Lock is set or cleared. If the lock
is held by someone else dio_fcntl() returns
-1.
F_SETLKW
- like F_SETLK
,
but in case the lock is held by someone else,
dio_fcntl() waits until the lock is released.
F_GETLK
- dio_fcntl()
returns an associative array (as described above) if someone else
prevents lock. If there is no obstruction key "type" will set
to F_UNLCK
.
F_DUPFD
- finds the lowest numbered available
file descriptor greater than or equal to args
and returns them.
F_SETFL
- Sets the file descriptors flags to
the value specified by args, which can be
O_APPEND
, O_NONBLOCK
or
O_ASYNC
. To use O_ASYNC
you will need to use the PCNTL
extension.
args is an associative array, when
cmd is F_SETLK
or
F_SETLLW
, with the following keys:
"start" - offset where lock begins
"length" - size of locked area. zero means to end of file
"wenth" - Where l_start is relative to: can be
SEEK_SET
,
SEEK_END
and SEEK_CUR
"type" - type of lock: can be F_RDLCK
(read
lock), F_WRLCK
(write lock) or
F_UNLCK
(unlock)
<?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 succesfully set/cleared";
}
dio_close($fd);
?>