readdir(2)

الاسم
readdir - قراءة مدخل دليل

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

موجز
#include <sys/syscall.h>      /* تعريف ثوابت SYS_* */
#include <unistd.h>

int syscall(SYS_readdir, unsigned int fd,
            struct old_linux_dirent *dirp, unsigned int count);

ملاحظة: لا يوجد تعريف لـ struct old_linux_dirent؛ انظر الإصدارات.

الوصف
هذه ليست الدالة التي تهمك. انظر إلى readdir(3) لواجهة مكتبة C المتوافقة مع POSIX. توثق هذه الصفحة واجهة استدعاء النظام النواة المجردة، والتي تم استبدالها بـ getdents(2).

تقرأ readdir() بنية old_linux_dirent واحدة من الدليل المشار إليه بواصف الملف fd في المخزن المؤقت المشار إليه بـ dirp. يتم تجاهل الوسيطة count؛ تتم قراءة بنية old_linux_dirent واحدة على الأكثر.

يتم تعريف بنية old_linux_dirent (بشكل خاص في ملف نواة لينكس fs/readdir.c) كما يلي:

    struct old_linux_dirent {
        unsigned long d_ino;     /* inode number */
        unsigned long d_offset;  /* offset to this old_linux_dirent */
        unsigned short d_namlen; /* length of this d_name */
        char  d_name[1];         /* filename (null-terminated) */
    }

d_ino هو رقم inode. d_offset هو المسافة من بداية الدليل إلى هذا old_linux_dirent. d_reclen هو حجم d_name، دون احتساب البايت الفارغ المنتهي ('\0'). d_name هو اسم ملف منتهي بقيمة فارغة.

قيمة الإرجاع
عند النجاح، يتم إرجاع 1. عند نهاية الدليل، يتم إرجاع 0. عند الخطأ، يتم إرجاع -1، ويتم تعيين errno للإشارة إلى الخطأ.

الأخطاء

EBADF
    وصف ملف (file descriptor) غير صالح fd.

EFAULT
    تشير المعطيات (arguments) إلى خارج فضاء عناوين العملية المستدعية.

EINVAL
    مخزن النتائج المؤقت صغير جدًا.

ENOENT
    لا يوجد دليل كهذا.

ENOTDIR
    واصف الملف لا يشير إلى مجلد.

الإصدارات
ستحتاج إلى تعريف بنية old_linux_dirent بنفسك. ومع ذلك، ربما يجب عليك استخدام readdir(3) بدلاً من ذلك.

استدعاء النظام هذا غير موجود في x86-64.

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

انظر أيضًا
getdents(2), readdir(3)

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

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

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