inotify_add_watch(2)

الاسم
inotify_add_watch - إضافة مراقبة إلى نسخة inotify مهيأة

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

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

int inotify_add_watch(int fd, const char *path, uint32_t mask);

الوصف
تضيف inotify_add_watch() مراقبة جديدة، أو تعدل مراقبة موجودة، للملف الذي يحدد موقعه في path؛ يجب أن يكون لدى المستدعي صلاحية قراءة لهذا الملف. الوسيط fd هو واصف ملف يشير إلى نسخة inotify التي سيتم تعديل قائمة مراقبتها. تحدد الأحداث المراد مراقبتها لـ path في وسيط قناع البت mask. انظر inotify(7) لوصف البتات التي يمكن تعيينها في mask.

يعيد استدعاء ناجح لـ inotify_add_watch() واصف مراقبة فريد لنسخة inotify هذه، لكائن نظام الملفات (inode) الذي يتوافق مع path. إذا لم يكن كائن نظام الملفات مراقبًا سابقًا بواسطة نسخة inotify هذه، فإن واصف المراقبة يخصص حديثًا. إذا كان كائن نظام الملفات مراقبًا بالفعل (ربما عبر رابط مختلف لنفس الكائن)، فإن واصف المراقبة الحالية يعاد.

يعاد واصف المراقبة بواسطة استدعاءات read(2) لاحقة من واصف ملف inotify. تجلب هذه القراءات بنى inotify_event (انظر inotify(7)) التي تشير إلى أحداث نظام الملفات؛ يحدد واصف المراقبة داخل هذه البنية الكائن الذي حدث له الحدث.

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

الأخطاء

EACCES
    الوصول للقراءة إلى الملف المعطى غير مسموح به.

EBADF
    واصف الملف المعطى غير صالح.

EEXIST
    يحتوي mask على IN_MASK_CREATE ويشير path إلى ملف مراقب بالفعل بواسطة نفس fd.

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

EINVAL
    لا يحتوي قناع الحدث المعطى على أحداث صالحة؛ أو يحتوي mask على كل من IN_MASK_ADD و IN_MASK_CREATE؛ أو fd ليس واصف ملف inotify.

ENAMETOOLONG
    المسار path طويل جداً.

ENOENT
    مكون الدليل في path غير موجود أو أنه وصلة رمزية معلقة.

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

ENOSPC
    وصل حد المستخدم على العدد الإجمالي لمراقبات inotify أو فشلت النواة في تخصيص مورد مطلوب.

ENOTDIR
    يحتوي mask على IN_ONLYDIR و path ليس دليلاً.

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

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

أمثلة
انظر inotify(7).

انظر أيضًا
inotify_init(2), inotify_rm_watch(2), inotify(7)

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

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

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