.\" -*- coding: UTF-8 -*- .\" Copyright 1996, 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 msync 2 "11 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم msync \- مزامنة ملف مع خريطة ذاكرة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint msync(\fPsize_t length; \fB void \fP\fIaddr\fP\fB[\fP\fIlength\fP\fB], size_t \fP\fIlength\fP\fB, int \fP\fIflags\fP\fB);\fP .fi .SH الوصف \fBmsync\fP() يُفرغ التغييرات التي أُجريت على النسخة الداخلية من ملف تم تعيينه في الذاكرة باستخدام \fBmmap\fP(2) إلى نظام الملفات. بدون استخدام هذه الاستدعاء، لا يوجد ضمان بأن التغييرات ستُكتب قبل استدعاء \fBmunmap\fP(2). بشكل أكثر دقة، يتم تحديث جزء الملف الذي يتوافق مع منطقة الذاكرة التي تبدأ عند \fIaddr\fP وطولها \fIlength\fP. .P وسيطة \fIflags\fP يجب أن تحدد بالضبط واحدة من \fBMS_ASYNC\fP و \fBMS_SYNC\fP، وقد تتضمن بالإضافة إلى ذلك البت \fBMS_INVALIDATE\fP. هذه البتات لها المعاني التالية: .TP \fBMS_ASYNC\fP يحدد أن يتم جدولة تحديث، لكن الاستدعاء يعود فورًا. .TP \fBMS_SYNC\fP يطلب تحديثًا وينتظر اكتماله. .TP \fBMS_INVALIDATE\fP .\" Since Linux 2.4, this seems to be a no-op (other than the .\" EBUSY check for VM_LOCKED). يطلب إبطال تعيينات أخرى لنفس الملف (بحيث يمكن تحديثها بالقيم الجديدة التي كُتبت للتو). .SH "قيمة الإرجاع" عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEBUSY\fP \fBMS_INVALIDATE\fP تم تحديده في \fIflags\fP، ويوجد قفل ذاكرة للنطاق العنواني المحدد. .TP \fBEINVAL\fP \fIaddr\fP ليس مضاعفًا لـ PAGESIZE؛ أو أي بت غير \fBMS_ASYNC\fP | \fBMS_INVALIDATE\fP | \fBMS_SYNC\fP مضبوط في \fIflags\fP؛ أو كلا \fBMS_SYNC\fP و \fBMS_ASYNC\fP مضبوطان في \fIflags\fP. .TP \fBENOMEM\fP الذاكرة المشار إليها (أو جزء منها) لم تكن معينة. .SH الإصدارات .\" commit 204ec841fbea3e5138168edbc3a76d46747cc987 وفقًا لـ POSIX، يجب تحديد إما \fBMS_SYNC\fP أو \fBMS_ASYNC\fP في \fIflags\fP، وبالفعل سيؤدي الفشل في تضمين أحد هذه الأعلام إلى فشل \fBmsync\fP() على بعض الأنظمة. ومع ذلك، يسمح Linux باستدعاء \fBmsync\fP() لا يحدد أيًا من هذه الأعلام، بدلالات (حاليًا) مكافئة لتحديد \fBMS_ASYNC\fP. (منذ Linux 2.6.19، \fBMS_ASYNC\fP هو في الواقع عملية فارغة، حيث يتتبع النواة الصفحات المتسخة بشكل صحيح ويُفرغها إلى التخزين حسب الحاجة.) بغض النظر عن سلوك Linux، يجب على التطبيقات المحمولة والمقاومة للمستقبل التأكد من أنها تحدد إما \fBMS_SYNC\fP أو \fBMS_ASYNC\fP في \fIflags\fP. .SH المعايير POSIX.1\-2024. .SH التاريخ SUSv1, POSIX.1\-1996. .P تم تقديم هذه الاستدعاء في Linux 1.3.21، ثم استخدم \fBEFAULT\fP بدلاً من \fBENOMEM\fP. في Linux 2.4.19، تم تغيير هذا إلى قيمة POSIX \fBENOMEM\fP. .P .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. .\" -1: unavailable, 0: ask using sysconf(). .\" glibc defines them to 1. على أنظمة POSIX التي تتوفر فيها \fBmsync\fP()، يتم تعريف كل من \fB_POSIX_MAPPED_FILES\fP و \fB_POSIX_SYNCHRONIZED_IO\fP في \fI\fP بقيمة أكبر من 0. (انظر أيضًا \fBsysconf\fP(3).) .SH "انظر أيضًا" \fBmmap\fP(2) .P ب. أ.\& جالميستر، POSIX.4، دار أورايلي، ص.\& 128\[en]129 و 389\[en]391. .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .