Arquivo flock.h

Propósito

Define opções de controle de arquivo.

Descrição

A estrutura flock no arquivo /usr/include/sys/flock.h , que descreve um bloqueio, contém os seguintes campos:

Item Descrição
l_type Descreve o tipo de bloqueio. Se o valor do parâmetro Command para a subroutine fcntl for F_SETLK ou F_SETLKW, ol_typecampo indica o tipo de bloqueio a ser criado. Os valores possíveis são:
F_RDLCK
Um bloqueio de leitura é solicitado.
F_WRLCK
Um bloqueio de gravação é solicitado.
F_UNLCK
Desbloquear. Um bloqueio existente deve ser removido.

Se o valor do parâmetro Command para a subroutine fcntl for F_GETLK, o l_typecampo descreve um bloqueio existente. Os valores possíveis são:

F_RDLCK
Um bloqueio de leitura conflitante existe.
F_WRLCK
Um bloqueio de gravação conflitante existe.
F_UNLCK
Nenhuma trava conflitante existe.
l_whence Define o deslocamento inicial. O valor deste campo indica o ponto a partir do qual o deslocamento relativo, ol_startcampo, é medido. Os valores possíveis são:
SEEK_SET
O deslocamento relativo é medido a partir do início do arquivo.
SEEK_CUR
O deslocamento relativo é medido a partir da posição atual.
SEEK_END
O deslocamento relativo é medido a partir do final do arquivo.

Esses valores são definidos no arquivo unistd.h

l_start Define o deslocamento relativo em bytes, medido a partir do ponto de partida nol_whence.
l_len Especifica o número de bytes consecutivos a serem bloqueados.
l_sysid Contém o ID do nó que já possui um bloqueio colocado sobre a área definida pelo subroutine fcntl . Este campo é retornado apenas quando o valor do parâmetro Command é F_GETLK.
l_pid Contém o ID de um processo que já possui um bloqueio colocado sobre a área definida pelo subroutine fcntl . Este campo é retornado apenas quando o valor do parâmetro Command é F_GETLK.
l_vfs Especifica o tipo de sistema de arquivos do nó identificado nol_sysid.

Embora a estrutura do flock seja usada por programas de aplicativos para fazer pedidos de bloqueio de arquivos, a estrutura estendida flock , struct eflock, é usada internamente pelo kernel. A estrutura do eflock é idêntica à estrutura flock na que tem os mesmos campos. As diferenças são que ol_lenel_startcampos são 64 bit inteiros.

A estrutura flock64 no arquivo /usr/include/sys/flock.h , que descreve um bloqueio, contém os seguintes campos:

Item Descrição
l_type Descreve o tipo de bloqueio. Se o valor do parâmetro Command para a subroutine fcntl for F_SETLK ou F_SETLKW, ol_typecampo indica o tipo de bloqueio a ser criado. Os valores possíveis são:
F_RDLCK
Um bloqueio de leitura é solicitado.
F_WRLCK
Um bloqueio de gravação é solicitado.
F_UNLCK
Desbloquear. Um bloqueio existente deve ser removido.

Se o valor do parâmetro Command para a subroutine fcntl for F_GETLK, o l_typecampo descreve um bloqueio existente. Os valores possíveis são:

F_RDLCK
Um bloqueio de leitura conflitante existe.
F_WRLCK
Um bloqueio de gravação conflitante existe.
F_UNLCK
Nenhuma trava conflitante existe.
l_whence Define o deslocamento inicial. O valor deste campo indica o ponto a partir do qual o deslocamento relativo, ol_startcampo, é medido. Os valores possíveis são:
SEEK_SET
O deslocamento relativo é medido a partir do início do arquivo.
SEEK_CUR
O deslocamento relativo é medido a partir da posição atual.
SEEK_END
O deslocamento relativo é medido a partir do final do arquivo.

Esses valores são definidos no arquivo unistd.h

l_start Define o deslocamento relativo em bytes, medido a partir do ponto de partida nol_whence. Este campo é do tipooff64_t.
l_len Especifica o número de bytes consecutivos a serem bloqueados. Este campo é do tipooff64_t.
l_sysid Contém o ID do nó que já possui um bloqueio colocado sobre a área definida pelo subroutine fcntl . Este campo é retornado apenas quando o valor do parâmetro Command é F_GETLK.
l_pid Contém o ID de um processo que já possui um bloqueio colocado sobre a área definida pelo subroutine fcntl . Este campo é retornado apenas quando o valor do parâmetro Command é F_GETLK.
l_vfs Especifica o tipo de sistema de arquivos do nó identificado nol_sysid.