statvfs(3)

الاسم
statvfs, fstatvfs - الحصول على إحصائيات نظام الملفات

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

موجز
#include <sys/statvfs.h>

int statvfs(const char *restrict path, struct statvfs *restrict buf);
int fstatvfs(int fd, struct statvfs *buf);

الوصف
الدالة statvfs() تُرجع معلومات عن نظام ملفات موصول. path هو اسم مسار أي ملف داخل نظام الملفات الموصول. buf هو مؤشر إلى بنية statvfs المُعرَّفة تقريبًا كما يلي:

    struct statvfs {
        unsigned long  f_bsize;    /* حجم كتلة نظام الملفات */
        unsigned long  f_frsize;   /* حجم القطعة */
        fsblkcnt_t     f_blocks;   /* حجم نظام الملفات بوحدات f_frsize */
        fsblkcnt_t     f_bfree;    /* عدد الكتل الحرة */
        fsblkcnt_t     f_bavail;   /* عدد الكتل الحرة للمستخدمين غير المميزين */
        fsfilcnt_t     f_files;    /* عدد عقد inode */
        fsfilcnt_t     f_ffree;    /* عدد عقد inode الحرة */
        fsfilcnt_t     f_favail;   /* عدد عقد inode الحرة للمستخدمين غير المميزين */
        unsigned long  f_fsid;     /* معرف نظام الملفات */
        unsigned long  f_flag;     /* أعلام الوصل */
        unsigned long  f_namemax;  /* أقصى طول لاسم الملف */
    };

هنا الأنواع fsblkcnt_t و fsfilcnt_t مُعرَّفة في <sys/types.h>. كلاهما كانا من النوع unsigned long.

الحقل f_flag هو قناع بتات يُشير إلى خيارات متنوعة استُخدمت عند وصل نظام الملفات هذا. يحتوي على صفر أو أكثر من الأعلام التالية:

ST_MANDLOCK
    القفل الإجباري مسموح به على نظام الملفات (انظر fcntl(2)).

ST_NOATIME
    لا تُحدّث أوقات الوصول؛ انظر mount(2).

ST_NODEV
    امنع الوصول إلى ملفات الأجهزة الخاصة على نظام الملفات هذا.

ST_NODIRATIME
    لا تُحدّث أوقات وصول الأدلة؛ انظر mount(2).

ST_NOEXEC
    تنفيذ البرامج غير مسموح به على نظام الملفات هذا.

ST_NOSUID
    تُتجاهل بتات set-user-ID و set-group-ID بواسطة exec(3) للملفات التنفيذية على نظام الملفات هذا

ST_RDONLY
    نظام الملفات هذا موصول للقراءة فقط.

ST_RELATIME
    حدث atime بالنسبة إلى mtime/ctime؛ انظر mount(2).

ST_SYNCHRONOUS
    تُزامن عمليات الكتابة إلى نظام الملفات فورًا (انظر وصف O_SYNC في open(2)).

غير مُحدد ما إذا كانت جميع أعضاء البنية المُرجعة لها قيم ذات معنى على جميع أنظمة الملفات.

fstatvfs() تُرجع نفس المعلومات عن ملف مفتوح يُشار إليه بالواصف fd.

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

الأخطاء

EACCES
    (statvfs()) إذن البحث مرفوض لمكون من بادئة مسار path. (انظر أيضًا path_resolution(7).)

EBADF
    (fstatvfs()) fd ليس واصف ملف مفتوح صالحًا.

EFAULT
    Buf أو path يُشير إلى عنوان غير صالح.

EINTR
    هذه الاستدعاء قُطعت بإشارة؛ انظر signal(7).

EIO حدث خطأ إدخال/إخراج أثناء القراءة من نظام الملفات.

ELOOP
    (statvfs()) وُجد عدد كبير جدًا من الروابط الرمزية أثناء ترجمة path.

ENAMETOOLONG
    (statvfs()) path طويل جدًا.

ENOENT
    (statvfs()) الملف المشار إليه بواسطة path غير موجود.

ENOMEM
    ذاكرة النواة المتوفرة غير كافية.

ENOSYS
    نظام الملفات لا يدعم هذا الاستدعاء.

ENOTDIR
    (statvfs()) مكون من بادئة مسار path ليس دليلاً.

EOVERFLOW
    كانت بعض القيم أكبر من أن تُمَثَّل في البنية (struct) المعادة.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
statvfs(), fstatvfs() | سلامة الخيوط | MT-Safe

الإصدارات
فقط العلمان ST_NOSUID و ST_RDONLY من الحقل f_flag مُحددان في POSIX.1. للحصول على تعريفات الأعلام المتبقية، يجب تعريف _GNU_SOURCE.

ملاحظات
نواة لينكس تحتوي على استدعاءات النظام statfs(2) و fstatfs(2) لدعم استدعاء المكتبة هذا.

تطبيقات glibc للدوال

    pathconf(path, _PC_REC_XFER_ALIGN);
    pathconf(path, _PC_ALLOC_SIZE_MIN);
    pathconf(path, _PC_REC_MIN_XFER_SIZE);

تستخدم على التوالي الحقول f_frsize و f_frsize و f_bsize التي يُرجعها استدعاء statvfs() مع المعامل path.

تحت لينكس، يكون f_favail دائمًا مماثلاً لـ f_ffree، ولا توجد طريقة لنظام الملفات للإبلاغ بخلاف ذلك. هذه ليست مشكلة، إذ لا توجد أنظمة ملفات ذات حجز جذر لعُقد الإدخال (inode).

المعايير
POSIX.1-2008.

التاريخ
POSIX.1-2001.

قبل glibc 2.13، كان statvfs() يملأ بتات الحقل f_flag بمسح خيارات الوصل (mount) المعروضة في /proc/mounts. لكن، بدءًا من لينكس 2.6.36، يوفر استدعاء النظام الأساسي statfs(2) المعلومات الضرورية عبر الحقل f_flags، ومنذ glibc 2.13، تستخدم الدالة statvfs() المعلومات من ذلك الحقل بدلاً من مسح /proc/mounts.

انظر أيضًا
statfs(2)

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

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

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