struct flock, flock_t

Структура, характеризующая файловую блокировку

Прототип:

#include <fcntl.h>
/*
* flock structure.
*/
typedef struct flock {
_Int16t l_type;
_Int16t l_whence;
_Int32t l_zero1;
#if _FILE_OFFSET_BITS - 0 == 64
off_t l_start;
off_t l_len;
#elif !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS == 32
#if defined(__LITTLEENDIAN__)
off_t l_start;
off_t l_start_hi;
off_t l_len;
off_t l_len_hi;
#elif defined(__BIGENDIAN__)
off_t l_start_hi;
off_t l_start;
off_t l_len_hi;
off_t l_len;
#else
#error endian not configured for system
#endif
#else
#error _FILE_OFFSET_BITS value is unsupported
#endif
pid_t l_pid;
_Uint32t l_sysid; /* node descriptor */
} flock_t;
typedef struct flock64 {
_Int16t l_type;
_Int16t l_whence;
_Int32t l_zero1;
off64_t l_start;
off64_t l_len;
pid_t l_pid;
_Uint32t l_sysid; /* node descriptor */
} flock64_t;

Описание:

Тип, позволяющий производить файловую блокировку. Структура включает следующие поля:

l_type
Один из F_RDLCK, F_WRLCK или F_UNLCK.
l_whence
Один из следующих флагов, определяющий, откуда начинается относительное смещение l_start:
SEEK_CUR
Текщая позиция.
SEEK_END
Конец файла.
SEEK_SET
Начало файла.
l_start
Относительное смещение в байтах.
l_len
Последовательное количество байт для блокировки; если 0, то до EOF; если отрицательное, то все предыдущие байты до начального, не включая его.
l_pid
Идентификатор процесса, удерживающего блокировку, возвращается, когда cmd в fcntl() установлен в F_GETLK.

Классификация:

POSIX 1003.1

Тематические ссылки:

fcntl()




Предыдущий раздел: Описание API системной библиотеки