listmount(2)

الاسم
listmount - الحصول على قائمة بمعرفات نقاط الوصل

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

موجز
#include <linux/mount.h>  /* تعريف ثوابت struct mnt_id_req */
#include <unistd.h>

int syscall(size_t n;
            SYS_listmount, struct mnt_id_req *req,
            uint64_t mnt_ids[n], size_t n,
            unsigned long flags);

#include <linux/mount.h>

struct mnt_id_req {
    __u32  size;    /* sizeof(struct mnt_id_req) */
    __u64  mnt_id;  /* معرف نقطة الوصل الأب الذي يتم البحث عنه */
    __u64  param;   /* معرف نقطة الوصل التالي الذي نريد إيجاده */
};

ملاحظة: لا توفر glibc غلافًا لـ listmount()، مما يستلزم استخدام syscall(2).

الوصف
للوصول إلى نقاط الوصل في نطاق الأسماء الخاص بك، يجب أن تمتلك صلاحية CAP_SYS_ADMIN في نطاق أسماء المستخدم.

ترجع هذه الدالة قائمة بمعرفات نقاط الوصل تحت req.mnt_id. يُقصد استخدامها بالتزامن مع statmount(2) لتوفير طريقة للتكرار واكتشاف أنظمة الملفات الموصولة.

  هيكل mnt_id_req
يستخدم النواة req.size لتحديد أي struct mnt_id_req يتم تمريره، ويجب دائمًا تعيينه إلى sizeof(struct mnt_id_req).

req.mnt_id هو معرف نقطة الوصل الأب الذي سنقوم بالإدراج منه، والذي يمكن أن يكون إما LSMT_ROOT الذي يعني نقطة الوصل الجذرية لنطاق أسماء الوصل الحالي، أو معرف نقطة وصل تم الحصول عليه إما من statx(2) باستخدام STATX_MNT_ID_UNIQUE أو من listmount(2).

يستخدم req.param لإخبار النواة بأي معرف نقطة وصل لبدء القائمة منه. هذا مفيد إذا كانت هناك حاجة لاستدعاءات متعددة لـ listmount(2). يمكن تعيين هذا إلى آخر معرف نقطة وصل تم إرجاعه لاستئناف من موضع سابق في القائمة.

قيمة الإرجاع
عند النجاح، يتم إرجاع عدد الإدخالات المملوءة في mnt_ids؛ 0 إذا لم يتبق أي نقاط وصل. عند الخطأ، يتم إرجاع -1، ويتم تعيين errno للإشارة إلى الخطأ.

الأخطاء

EPERM
    لا يمتلك المستدعي صلاحية CAP_SYS_ADMIN في نطاق أسماء المستخدم.

EFAULT
    يشير req أو mnt_ids إلى موقع خارج مساحة العنوان القابلة للوصول للعملية.

EINVAL
    راية غير صالحة محددة في flags.

EINVAL
    حجم req غير كافٍ لاستخدامه.

E2BIG
    req كبير جدًا، الحد الأقصى هو حجم صفحة المعمارية.

ENOENT
    req.mnt_id المحدد غير موجود.

ENOMEM
    نفاد الذاكرة (أي ذاكرة نواة الحاسوب).

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

انظر أيضًا
statmount(2), statx(2)

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

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

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