- unstable 4.31.0-1
| statvfs(3) | Library Functions Manual | 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.
انظر أيضًا¶
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس 6.18 |