.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1997 Nicolás Lichtmaier .\" Created Thu Aug 7 00:44:00 ART 1997 .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" Added section stuff, aeb, 2002-04-22. .\" Corrected include file, drepper, 2003-06-15. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH lockf 3 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH ИМЯ lockf \- устанавливает, проверяет или удаляет блокировку POSIX на открытом файле .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBint lockf(int \fP\fIfd\fP\fB, int \fP\fIop\fP\fB, off_t \fP\fIlen\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBlockf\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH ОПИСАНИЕ Apply, test, or remove a POSIX lock on a section of an open file. The file is specified by \fIfd\fP, a file descriptor open for writing, the action by \fIop\fP, and the section consists of byte positions \fIpos\fP..\fIpos\fP+\fIlen\fP\-1 if \fIlen\fP is positive, and \fIpos\fP\-\fIlen\fP..\fIpos\fP\-1 if \fIlen\fP is negative, where \fIpos\fP is the current file position, and if \fIlen\fP is zero, the section extends from the current file position to infinity, encompassing the present and future end\-of\-file positions. In all cases, the section may extend past current end\-of\-file. .P В Linux \fBlockf\fP() — всего лишь более удобный способ вызова \fBfcntl\fP(2) для блокировки. Во многих других системах реализация \fBlockf\fP() сделана подобным образом, но заметим, что в POSIX.1 нет явной связи между блокировками \fBlockf\fP() и \fBfcntl\fP(2). Переносимое приложение, вероятно, должно избегать использования этих двух вызовов одновременно. .P Список существующих операций приведён ниже: .TP \fBF_LOCK\fP Устанавливает исключительную блокировку указанной области файла. Если эта область (или её часть) уже блокирована, то вызов заблокирует выполнение до тех пор, пока не будет снята предыдущая блокировка. Если эта область перекрывается с ранее заблокированной областью, то они объединяются. Файловые блокировки снимаются сразу после того, как установивший их процесс закрывает файловый дескриптор. Дочерние процессы не наследуют подобные блокировки. .TP \fBF_TLOCK\fP То же самое, что и \fBF_LOCK\fP, но вызов никогда не блокирует выполнение и возвращает ошибку, если файл уже заблокирован. .TP \fBF_ULOCK\fP Снимает блокировку с заданной области файла. Может привести к тому, что блокируемая область будет поделена на две заблокированные области. .TP \fBF_TEST\fP Проверяет наличие блокировки: возвращает 0, если указанная область не заблокирована или заблокирована вызвавшим процессом; возвращает \-1, меняет значение \fIerrno\fP на \fBEAGAIN\fP (в некоторых системах на \fBEACCES\fP), если блокировка установлена другим процессом. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается 0. При ошибке возвращается \-1, а в \fIerrno\fP содержится код ошибки. .SH ОШИБКИ .TP \fBEACCES\fP или \fBEAGAIN\fP Файл блокирован и указана операция \fBF_TLOCK\fP или \fBF_TEST\fP, или операция запрещена, так как файл отображён в память другим процессом. .TP \fBEBADF\fP \fIfd\fP is not an open file descriptor; or \fIop\fP is \fBF_LOCK\fP or \fBF_TLOCK\fP and \fIfd\fP is not a writable file descriptor. .TP \fBEDEADLK\fP \fIop\fP was \fBF_LOCK\fP and this lock operation would cause a deadlock. .TP \fBEINTR\fP При ожидании получения блокировки вызов был прерван сигналом, пришедшим в обработчик; смотрите \fBsignal\fP(7). .TP \fBEINVAL\fP An invalid operation was specified in \fIop\fP. .TP \fBENOLCK\fP Открыто слишком много областей для блокировки, таблица блокировок переполнена. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBlockf\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, SVr4. .SH "СМОТРИТЕ ТАКЖЕ" \fBfcntl\fP(2), \fBflock\fP(2) .P Смотрите также файлы \fIlocks.txt\fP и \fImandatory\-locking.txt\fP из каталога \fIDocumentation/filesystems\fP с исходным кодом ядра Linux (в старых ядрах эти файлы были в каталоге \fIDocumentation\fP, а \fImandatory\-locking.txt\fP назывался \fImandatory.txt\fP). .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Artyom Kunyov , Azamat Hackimov , Dmitry Bolkhovskikh , Katrin Kutepova , Konstantin Shvaykovskiy , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .