.\" -*- coding: UTF-8 -*- .\" Copyright 2006, Michael Kerrisk .\" 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 sync_file_range 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم sync_file_range \- مزامنة مقطع ملف مع القرص .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#define _GNU_SOURCE\fP /* انظر feature_test_macros(7) */ \fB#define _FILE_OFFSET_BITS 64\fP \fB#include \fP .P \fBint sync_file_range(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, off_t \fP\fInbytes\fP\fB,\fP \fB unsigned int \fP\fIflags\fP\fB);\fP .fi .SH الوصف تسمح \fBsync_file_range\fP() بالتحكم الدقيق عند مزامنة الملف المفتوح المشار إليه بواصف الملف \fIfd\fP مع القرص. .P \fIoffset\fP هو البايت الابتدائي لنطاق الملف المراد مزامنته. يحدد \fInbytes\fP طول النطاق المراد مزامنته، بالبايتات؛ إذا كان \fInbytes\fP صفرًا، فستتم مزامنة جميع البايتات من \fIoffset\fP حتى نهاية الملف. تتم المزامنة بوحدات حجم صفحة النظام: يتم تقريب \fIoffset\fP لأسفل إلى حد صفحة؛ يتم تقريب \fI(offset+nbytes\-1)\fP لأعلى إلى حد صفحة. .P يمكن أن تتضمن وسيطة قناع البتات \fIflags\fP أيًا من القيم التالية: .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE\fP انتظر كتابة جميع الصفحات في النطاق المحدد التي تم إرسالها بالفعل إلى برنامج تشغيل الجهاز للكتابة قبل تنفيذ أي كتابة. .TP \fBSYNC_FILE_RANGE_WRITE\fP ابدأ كتابة جميع الصفحات المتسخة في النطاق المحدد التي لم يتم إرسالها حاليًا للكتابة. لاحظ أن هذا قد يحظر حتى إذا حاولت كتابة أكثر من حجم قائمة انتظار الطلبات. .TP \fBSYNC_FILE_RANGE_WAIT_AFTER\fP انتظر كتابة جميع الصفحات في النطاق بعد تنفيذ أي كتابة. .P يُسمح بتحديد \fIflags\fP كـ 0، كعملية عدم فعل. .SS تحذير استدعاء النظام هذا خطير للغاية ولا ينبغي استخدامه في البرامج المحمولة. لا تقوم أي من هذه العمليات بكتابة بيانات وصفية للملف. لذلك، ما لم يكن التطبيق يقوم بشكل صارم بالكتابة فوق كتل القرص الموجودة بالفعل، فلا توجد ضمانات بأن البيانات ستكون متاحة بعد تعطل. لا توجد واجهة مستخدم لمعرفة ما إذا كانت الكتابة مجرد كتابة فوقية. على أنظمة الملفات التي تستخدم دلالات النسخ عند الكتابة (مثل \fIbtrfs\fP)، فإن الكتابة فوق الكتل المخصصة الموجودة مستحيلة. عند الكتابة في مساحة مخصصة مسبقًا، تتطلب العديد من أنظمة الملفات أيضًا استدعاءات إلى مخصص الكتل، والذي لا يقوم استدعاء النظام هذا بمزامنته مع القرص. لا يقوم استدعاء النظام هذا بمسح خبيئات كتابة القرص وبالتالي لا يوفر أي تكامل بيانات على الأنظمة ذات خبيئات كتابة القرص المتطايرة. .SS "بعض التفاصيل" ستكتشف \fBSYNC_FILE_RANGE_WAIT_BEFORE\fP و \fBSYNC_FILE_RANGE_WAIT_AFTER\fP أي أخطاء إدخال/إخراج أو حالات \fBENOSPC\fP وستعيد هذه إلى المستدعي. .P التركيبات المفيدة لبتات \fIflags\fP هي: .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE\fP تضمن أن جميع الصفحات في النطاق المحدد التي كانت متسخة عند استدعاء \fBsync_file_range\fP() يتم وضعها تحت الكتابة. هذه عملية بدء كتابة لتكامل البيانات. .TP \fBSYNC_FILE_RANGE_WRITE\fP ابدأ كتابة جميع الصفحات المتسخة في النطاق المحدد التي ليست حاليًا تحت الكتابة. هذه عملية مسح غير متزامن إلى القرص. هذه ليست مناسبة لعمليات تكامل البيانات. .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE\fP (أو \fBSYNC_FILE_RANGE_WAIT_AFTER\fP) انتظر اكتمال كتابة جميع الصفحات في النطاق المحدد. يمكن استخدام هذا بعد عملية سابقة \fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE\fP لانتظار اكتمال تلك العملية، والحصول على نتيجتها. .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_AFTER\fP هذه عملية كتابة لتكامل البيانات تضمن أن جميع الصفحات في النطاق المحدد التي كانت متسخة عند استدعاء \fBsync_file_range\fP() يتم إيداعها على القرص. .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBsync_file_range\fP() 0؛ عند الفشل، تُرجع \-1 ويتم تعيين \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEBADF\fP \fIfd\fP ليس واصف ملف صالح. .TP \fBEINVAL\fP يحدد \fIflags\fP بتة غير صالحة؛ أو أن \fIoffset\fP أو \fInbytes\fP غير صالح. .TP \fBEIO\fP خطأ إدخال/إخراج. .TP \fBENOMEM\fP نفدت الذاكرة. .TP \fBENOSPC\fP نفاد مساحة القرص. .TP \fBESPIPE\fP يشير \fIfd\fP إلى شيء آخر غير ملف عادي أو جهاز كتلة أو دليل. .SH الإصدارات .SS sync_file_range2() .\" See kernel commit edd5cd4a9424f22b0fa08bef5e299d41befd5622 بعض البنى (مثل PowerPC، ARM) تحتاج وسائط 64\-bit لتكون محاذية في زوج مناسب من المسجلات. على هذه البنى، توقيع استدعاء \fBsync_file_range\fP() الموضح في الملخص سيجبر مسجلاً على أن يُهدر كحشوة بين وسيطي \fIfd\fP و\fIoffset\fP. (انظر \fBsyscall\fP(2) للتفاصيل.) لذلك، تعرف هذه البنى استدعاء نظام مختلفاً يرتب الوسائط بشكل مناسب: .P .in +4n .EX \fBint sync_file_range2(int \fP\fIfd\fP\fB, unsigned int \fP\fIflags\fP\fB,\fP \fB off_t \fP\fIoffset\fP\fB, off_t \fP\fInbytes\fP\fB);\fP .EE .in .P سلوك استدعاء النظام هذا مطابق تماماً لـ \fBsync_file_range\fP() فيما عدا ذلك. .SH المعايير لينكس. .SH التاريخ لينكس 2.6.17. .SS sync_file_range2() استدعاء نظام بهذا التوقيع ظهر أولاً على بنية ARM في لينكس 2.6.20، بالاسم \fBarm_sync_file_range\fP(). أُعيدت تسميته في لينكس 2.6.22، عندما أُضيف استدعاء النظام المماثل لـ PowerPC. على البنى حيث دعم glibc متوفر، يغلف glibc بشفافية \fBsync_file_range2\fP() تحت الاسم \fBsync_file_range\fP(). .SH ملاحظات \fB_FILE_OFFSET_BITS\fP يجب أن يُعرف كـ 64 في الكود الذي يأخذ عنوان \fBsync_file_range\fP، إذا كان الكود مقصوداً ليكون محمولاً إلى منصات x86 وARM 32\-bit التقليدية حيث عرض \fBoff_t\fP مبدئي هو 32 بت. .SH "انظر أيضًا" \fBfdatasync\fP(2)، \fBfsync\fP(2)، \fBmsync\fP(2)، \fBsync\fP(2) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .