The dio_fcntl() function
performs the operation specified by
cmd on the file descriptor
fd. Some commands require additional arguments args to be supplied.
arg 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)
cmd 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 or equal than
arg and returns them.
F_SETFL - Sets the file descriptors flags to the
value specified by arg,
Which can be O_APPEND,O_NONBLOCK or O_ASYNC . To use
O_ASYNC you will need to use the pcntl extension.