sync(2)

الاسم
sync, syncfs - إيداع خبيئات نظام الملفات إلى القرص

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <unistd.h>

void sync(void);

int syncfs(int fd);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

sync():
    _XOPEN_SOURCE >= 500
        || /* منذ glibc 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE

syncfs():
    _GNU_SOURCE

الوصف
sync() يتسبب في كتابة جميع التعديلات المعلقة لبيانات تعريف نظام الملفات وبيانات الملفات المخبأة إلى أنظمة الملفات الأساسية.

syncfs() يشبه sync()، لكنه يزامن فقط نظام الملفات الذي يحتوي على الملف المشار إليه بواصف الملف المفتوح fd.

قيمة الإرجاع
syncfs() يُرجع 0 عند النجاح؛ عند الخطأ، يُرجع -1 ويضبط errno للإشارة إلى الخطأ.

الأخطاء
sync() ناجح دائمًا.

يمكن أن يفشل syncfs() للأسباب التالية على الأقل:

EBADF
    fd ليس واصف ملف صالح.

EIO حدث خطأ أثناء المزامنة. قد يتعلق هذا الخطأ بالبيانات المكتوبة إلى أي ملف على نظام الملفات، أو ببيانات التعريف المتعلقة بنظام الملفات نفسه.

ENOSPC
    نفدت مساحة القرص أثناء المزامنة.

ENOSPC
EDQUOT
    كُتبت بيانات إلى ملف على NFS أو نظام ملفات آخر لا يخصص مساحة في وقت استدعاء النظام write(2)، وفشلت كتابة سابقة بسبب عدم كفاية مساحة التخزين.

الإصدارات
وفقًا للمواصفات القياسية (أي POSIX.1)، يقوم sync() بجدولة عمليات الكتابة، لكنه قد يعود قبل اكتمال الكتابة الفعلية. ومع ذلك، ينتظر Linux اكتمال الإدخال/الإخراج، وبالتالي يوفر sync() أو syncfs() نفس الضمانات مثل fsync() المُستدعى على كل ملف في النظام أو نظام الملفات على التوالي.

المعايير

sync()
    POSIX.1-2024.

syncfs()
    لينكس.

التاريخ

sync()
    POSIX.1-2001، SVr4، 4.3BSD.

syncfs()
    لينكس 2.6.39، glibc 2.14.

منذ glibc 2.2.2، النموذج الأولي لـ sync() في Linux هو كما هو مذكور أعلاه، متبعًا المعايير المختلفة. في glibc 2.2.1 والإصدارات السابقة، كان "int sync(void)"، وكان sync() يُرجع دائمًا 0.

في إصدارات النواة الرئيسية قبل Linux 5.8، سيفشل syncfs() فقط عند تمرير واصف ملف سيئ (EBADF). منذ Linux 5.8، سيُبلغ syncfs() أيضًا عن خطأ إذا فشلت كتابة عقدة فهرس واحدة أو أكثر منذ آخر استدعاء syncfs().

العلل
قبل Linux 1.3.20، لم ينتظر Linux اكتمال الإدخال/الإخراج قبل العودة.

انظر أيضًا
sync(1), fdatasync(2), fsync(2)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.