(PHP 4 >= 4.2.0)
dio_fcntl -- Realiza una operación del tipo fcntl de la libería de C sobre el descriptor de archivo indicado por el parámetro fdLa función dio_fcntl() realiza la operación indicada por el parámetro cmd sobre el descriptor de archivo fd. Algunas operaciones requieren argumentos adicionales introducidos a traves del parámetro args.
arg es un array de tipo asociativo siempre que cmd es F_SETLK o F_SETLLW. En ese caso, las claves del array son las siguientes:
"start" - lugar donde comienza el bloqueo (lock)
"length" - tamaño del area bloqueada. Un valor igual a 0 (cero) indica un bloqueo hasta el final del archivo
"wenth" - Lugar desde donde se empieza a contar el tamaño 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)
cmd puede ser cualquiera de las siguientes operaciones:
F_SETLK - Activa o desactiva el bloqueo. Si alguien lo ha bloqueado anteriormente, la función dio_fcntl() devuelve -1.
F_SETLKW - Es similar a F_SETLK, salvo que en esta ocasión la función dio_fcntl() espera a que se libere el bloqueo en caso de que alguien lo haya bloqueado anteriormente.
F_GETLK - La función dio_fcntl() devuelve un array asociativo como el descrito previamente si existe alguien que impide realizar un bloqueo. Si no existe un bloqueo anterior, la clave "type" se pondra a F_UNLCK.
F_DUPFD - Busca el descriptor de archivo disponible con el número mas bajo y que sea mayor o igual que arg y lo convierte en una copia de fd y devuelve los dos descriptores.
F_SETFL - Establece el valor de las opciones de los descriptores de archivos a los valores especificados en el parámetro arg. Las opciones pueden ser O_APPEND,O_NONBLOCK o O_ASYNC. Para poder utilizar la opción O_ASYNC es necesario utilizar la extensión PCNTL.