mmap2(2)

الاسم
mmap2 - وصل الملفات أو الأجهزة إلى الذاكرة

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

موجز
#include <sys/mman.h>    /* تعريف ثوابت MAP_* و PROT_* */
#include <sys/syscall.h> /* تعريف ثوابت SYS_* */
#include <unistd.h>

void *syscall(SYS_mmap2, unsigned long addr, unsigned long length,
              unsigned long prot, unsigned long flags,
              unsigned long fd, unsigned long pgoffset);

الوصف
هذا ليس على الأرجح نداء النظام الذي يهمك؛ بدلاً من ذلك، انظر mmap(2)، الذي يصف دالة الغلاف glibc التي تستدعي نداء النظام هذا.

يوفر نداء النظام mmap2() نفس الواجهة مثل mmap(2)، باستثناء أن الوسيطة الأخيرة تحدد الإزاحة داخل الملف بوحدات 4096 بايت (بدلاً من البايتات، كما يفعل mmap(2)). هذا يمكن التطبيقات التي تستخدم off_t 32 بت من وصل ملفات كبيرة (حتى 2^44 بايت).

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

الأخطاء

EFAULT
    مشكلة في الحصول على البيانات من مساحة المستخدم.

EINVAL
    (منصات مختلفة حيث حجم الصفحة ليس 4096 بايت.) offset * 4096 ليس مضاعفاً لحجم صفحة النظام.

يمكن لـ mmap2() أيضًا إعادة أي من الأخطاء الموصوفة في mmap(2).

الإصدارات
على البنيات حيث يوجد نداء النظام هذا، تستدعي دالة الغلاف glibc mmap() نداء النظام هذا بدلاً من نداء النظام mmap(2).

استدعاء النظام هذا غير موجود في x86-64.

على ia64، وحدة offset هي في الواقع حجم صفحة النظام، بدلاً من 4096 بايت.

المعايير
لينكس.

التاريخ
لينكس 2.3.31.

انظر أيضًا
getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)

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

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

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