| posix_fallocate(3) | Library Functions Manual | posix_fallocate(3) |
الاسم¶
posix_fallocate - تخصيص مساحة ملف
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <fcntl.h>
int posix_fallocate(int fd, off_t offset, off_t size);
posix_fallocate():
_POSIX_C_SOURCE >= 200112L
الوصف¶
تضمن الدالة posix_fallocate() تخصيص مساحة قرص للملف المشار إليه بواصف الملف fd للبايتات في النطاق الذي يبدأ من offset ويمتد لـ size بايت. بعد استدعاء ناجح لـ posix_fallocate()، تُضمن عمليات الكتابة اللاحقة للبايتات في النطاق المحدد ألا تفشل بسبب نقص مساحة القرص.
إذا كان حجم الملف أقل من offset+size، يُزاد الملف إلى هذا الحجم؛ وإلا يُترك حجم الملف دون تغيير.
قيمة الإرجاع¶
تُرجع posix_fallocate() صفرًا عند النجاح، أو رقم خطأ عند الفشل. لاحظ أن errno لا يُضبط.
الأخطاء¶
- EBADF
- fd ليس واصف ملف صالحًا، أو ليس مفتوحًا للكتابة.
- EFBIG
- يتجاوز offset+size الحجم الأقصى للملف.
- EINTR
- التُقطت إشارة أثناء التنفيذ.
- EINVAL
- كان offset أقل من 0، أو كان size أقل من أو يساوي 0، أو لا يدعم نظام الملفات الأساسي العملية.
- ENODEV
- لا يشير fd إلى ملف عادي.
- ENOSPC
- لا توجد مساحة كافية على الجهاز الذي يحتوي على الملف المشار إليه بواسطة fd.
- EOPNOTSUPP
- لا يدعم نظام الملفات المحتوي على الملف المشار إليه بـ fd هذه العملية. يمكن إرجاع رمز الخطأ هذا بواسطة مكتبات C التي لا تؤدي المحاكاة الموضحة في التحذيرات، مثل musl libc.
- ESPIPE
- يشير fd إلى أنبوب.
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| posix_fallocate() | سلامة الخيوط | آمن للخيوط (لكن انظر التحذيرات) |
المعايير¶
POSIX.1-2008.
التاريخ¶
glibc 2.1.94. POSIX.1-2001
ينص POSIX.1-2008 على أن التنفيذ يجب أن يُعطي خطأ EINVAL إذا كان size يساوي 0، أو كان offset أقل من 0. ينص POSIX.1-2001 على أن التنفيذ يجب أن يُعطي خطأ EINVAL إذا كان size أقل من 0، أو كان offset أقل من 0، ويجوز أن يُعطي الخطأ إذا كان size يساوي صفرًا.
تحذيرات¶
في تنفيذ glibc، تُنفذ posix_fallocate() باستخدام استدعاء النظام fallocate(2)، وهو آمن للخيوط. إذا لم يدعم نظام الملفات الأساسي fallocate(2)، تُحاكى العملية مع التحذيرات التالية:
- •
- المحاكاة غير فعالة.
- •
- توجد حالة سباق حيث يمكن استبدال عمليات الكتابة المتزامنة من خيط أو عملية أخرى ببايتات فارغة.
- •
- توجد حالة سباق حيث قد تؤدي الزيادات المتزامنة في حجم الملف بواسطة خيط أو عملية أخرى إلى ملف حجمه أصغر من المتوقع.
- •
- إذا فُتح fd بعلمي O_APPEND أو O_WRONLY، تفشل الدالة مع الخطأ EBADF.
بشكل عام، المحاكاة ليست آمنة للخيوط. على لينكس، قد تستخدم التطبيقات fallocate(2) إذا لم تتحمل تحذيرات المحاكاة. بشكل عام، يُوصى بذلك فقط إذا خطط التطبيق لإنهاء العملية عند إرجاع EOPNOTSUPP، وإلا فسيحتاج التطبيق نفسه إلى تنفيذ حل بديل بنفس مشاكل المحاكاة التي يوفرها glibc.
انظر أيضًا¶
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس 6.18 |