.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2001, Andries E. Brouwer .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH flockfile 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم flockfile, ftrylockfile, funlockfile \- قفل FILE من أجل stdio .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBvoid flockfile(FILE *\fP\fIfilehandle\fP\fB);\fP \fBint ftrylockfile(FILE *\fP\fIfilehandle\fP\fB);\fP \fBvoid funlockfile(FILE *\fP\fIfilehandle\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P كافة الدوال الموضحة أعلاه: .nf /* Since glibc 2.24: */ _POSIX_C_SOURCE >= 199309L || /* glibc <= 2.23: */ _POSIX_C_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH الوصف دوال stdio آمنة للخيوط. يُحقق هذا بتعيين لكل كائن \fIFILE\fP عدد أقفال و (إذا كان عدد الأقفال غير صفري) خيط مالك. لكل استدعاء مكتبة، تنتظر هذه الدوال حتى لا يكون كائن \fIFILE\fP مقفلاً بواسطة خيط مختلف، ثم تقفله، وتُجري الإدخال/الإخراج المطلوب، وتُقفل الكائن مرة أخرى. .P (ملاحظة: لا علاقة لهذا القفل بقفل الملفات الذي تقوم بهوظائف مثل \fBflock\fP(2) و \fBlockf\fP(3).) .P كل هذا غير مرئي لمبرمج C، لكن قد يكون هناك سببان للرغبة في تحكم أكثر تفصيلاً. من ناحية، ربما تنتمي سلسلة من عمليات الإدخال/الإخراج بواسطة خيط واحد معًا، ولا ينبغي مقاطعتها بواسطة إدخال/إخراج خيط آخر. من ناحية أخرى، ربما ينبغي تجنب الحمل الزائد للقفل لتحقيق كفاءة أكبر. .P لتحقيق هذا، يمكن لخيط أن يقفل كائن \fIFILE\fP صراحة، ثم يُجري سلسلة عمليات الإدخال/الإخراج الخاصة به، ثم يُقفله. يمنع هذا الخيوط الأخرى من التدخل. إذا كان سبب فعل هذا هو تحقيق كفاءة أكبر، يُجري المرء الإدخال/الإخراج باستخدام الإصدارات غير المقفلة من دوال stdio: باستخدام \fBgetc_unlocked\fP(3) و \fBputc_unlocked\fP(3) بدلاً من \fBgetc\fP(3) و \fBputc\fP(3). .P تنتظر دالة \fBflockfile\fP() حتى لا يكون \fI*filehandle\fP مقفلاً بواسطة خيط مختلف، ثم تجعل الخيط الحالي مالكًا لـ \fI*filehandle\fP، وتزيد عدد الأقفال. .P تقلل دالة \fBfunlockfile\fP() عدد الأقفال. .P دالة \fBftrylockfile\fP() هي إصدار غير محظور من \fBflockfile\fP(). لا تفعل شيئًا في حالة امتلاك خيط آخر لـ \fI*filehandle\fP، وتكتسب الملكية وتزيد عدد الأقفال بخلاف ذلك. .SH "قيمة الإرجاع" تُرجع دالة \fBftrylockfile\fP() صفرًا للنجاح (تم الحصول على القفل)، وقيمة غير صفرية للفشل. .SH الأخطاء لا شيء. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBflockfile\fP(), \fBftrylockfile\fP(), \fBfunlockfile\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001. .P تتوفر هذه الدوال عندما يُعرف \fB_POSIX_THREAD_SAFE_FUNCTIONS\fP. .SH "انظر أيضًا" \fBunlocked_stdio\fP(3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .