.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1997, Nicolás Lichtmaier .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH lockf 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم lockf \- تطبيق أو اختبار أو إزالة قفل POSIX على ملف مفتوح .SH المكتبة مكتبة سي المعيارية (\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\fIsize\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 الوصف يُطبَّق أو يُختبر أو يُزال قفل POSIX على مقطع من ملف مفتوح. يُحدَّد الملف بواسطة \fIfd\fP، وهو واصف ملف مفتوح للكتابة، والإجراء بواسطة \fIop\fP، ويتكون المقطع من مواضع البايت \fIpos\fP..\fIpos\fP+\fIsize\fP\-1 إذا كان \fIsize\fP موجبًا، و \fIpos\fP\-\fIsize\fP..\fIpos\fP\-1 إذا كان \fIsize\fP سالبًا، حيث \fIpos\fP هو موضع الملف الحالي، وإذا كان \fIsize\fP صفرًا، يمتد المقطع من موضع الملف الحالي إلى اللانهاية، ليشمل مواضع نهاية الملف الحالية والمستقبلية. في جميع الحالات، قد يمتد المقطع إلى ما بعد نهاية الملف الحالية. .P على لينكس، \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 "قيمة الإرجاع" عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEACCES\fP أو \fBEAGAIN\fP الملف مقفل ووُصِف \fBF_TLOCK\fP أو \fBF_TEST\fP، أو العملية محظورة لأن الملف قد خُوطِط في الذاكرة بواسطة عملية أخرى. .TP \fBEBADF\fP \fIfd\fP ليس واصف ملف مفتوح؛ أو \fIop\fP هو \fBF_LOCK\fP أو \fBF_TLOCK\fP و \fIfd\fP ليس واصف ملف قابلًا للكتابة. .TP \fBEDEADLK\fP كان \fIop\fP هو \fBF_LOCK\fP وستتسبب عملية القفل هذه في طريق مسدود. .TP \fBEINTR\fP أثناء انتظار الحصول على القفل، قُطع النداء بسبب وصول إشارة التقطها معالج؛ انظر \fBsignal\fP(7). .TP \fBEINVAL\fP وُصِفت عملية غير صالحة في \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 (في النوى القديمة، توجد هذه الملفات مباشرة تحت دليل \fIDocumentation\fP، ويُسمى \fImandatory\-locking.txt\fP بـ \fImandatory.txt\fP) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .