setaliasent(3)

الاسم
setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r - قراءة إدخال اسم مستعار

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

موجز
#include <aliases.h>

void setaliasent(void);
void endaliasent(void);

struct aliasent *getaliasent(void);
int getaliasent_r(size_t size;
                     struct aliasent *restrict result,
                     char buffer[restrict size], size_t size,
                     struct aliasent **restrict res);

struct aliasent *getaliasbyname(const char *name);
int getaliasbyname_r(size_t size;
                     const char *restrict name,
                     struct aliasent *restrict result,
                     char buffer[restrict size], size_t size,
                     struct aliasent **restrict res);

الوصف
إحدى قواعد البيانات المتاحة مع مبدل خدمة الأسماء (NSS) هي قاعدة بيانات الأسماء المستعارة، التي تحتوي على أسماء البريد المستعارة. (لمعرفة قواعد البيانات المدعومة، جرب getent --help.) ست دوال وُفِّرت للوصول إلى قاعدة بيانات الأسماء المستعارة.

الدالة getaliasent() تُرجع مؤشرًا إلى بنية تحتوي على معلومات المجموعة من قاعدة بيانات الأسماء المستعارة. في المرة الأولى التي تُستدعى فيها تُرجع الإدخال الأول؛ بعد ذلك، تُرجع الإدخالات المتتالية.

الدالة setaliasent() تُعيد مؤشر الملف إلى بداية قاعدة بيانات الأسماء المستعارة.

الدالة endaliasent() تُغلق قاعدة بيانات الأسماء المستعارة.

getaliasent_r() هي النسخة القابلة لإعادة الدخول من الدالة السابقة. البنية المطلوبة تُخزَّن عبر الوسيط الأول ولكن المبرمج يحتاج لملء الوسائط الأخرى أيضًا. عدم توفير مساحة كافية يُسبب فشل الدالة.

الدالة getaliasbyname() تأخذ وسيط الاسم وتبحث في قاعدة بيانات الأسماء المستعارة. الإدخال يُرجع كمؤشر إلى struct aliasent.

getaliasbyname_r() هي النسخة القابلة لإعادة الدخول من الدالة السابقة. البنية المطلوبة تُخزَّن عبر الوسيط الثاني ولكن المبرمج يحتاج لملء الوسائط الأخرى أيضًا. عدم توفير مساحة كافية يُسبب فشل الدالة.

struct aliasent مُعرَّف في <aliases.h>:

    struct aliasent {
        char    *alias_name;             /* اسم مستعار */
        size_t   alias_members_len;
        char   **alias_members;          /* قائمة أسماء مستعارة */
        int      alias_local;
    };

قيمة الإرجاع
الدالتان getaliasent_r() و getaliasbyname_r() تُرجعان قيمة غير صفرية عند الخطأ.

الملفات
قاعدة بيانات الأسماء المستعارة المبدئية هي الملف /etc/aliases. يمكن تغيير هذا في الملف /etc/nsswitch.conf.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
setaliasent(), endaliasent(), getaliasent_r(), getaliasbyname_r() | سلامة الخيوط | المنطقة (locale) آمنة لتعدد المسالك (MT-Safe)
getaliasent(), getaliasbyname() | سلامة الخيوط | غير آمن لتعدد الخيوط (MT-Unsafe)

المعايير
GNU.

التاريخ
نظام NeXT لديه إجراءات مشابهة:

    #include <aliasdb.h>

    void alias_setent(void);
    void alias_endent(void);
    alias_ent *alias_getent(void);
    alias_ent *alias_getbyname(char *name);

أمثلة
المثال التالي يُترجم مع gcc example.c -o example. سيفرغ جميع الأسماء في قاعدة بيانات الأسماء المستعارة.

    #include <aliases.h>
    #include <errno.h>
    #include <stdio.h>
    #include <stdlib.h>

    int
    main(void)
    {
        struct aliasent *al;

        setaliasent();
        for (;;) {
            al = getaliasent();
            if (al == NULL)
                break;
            printf("Name: %s\n", al->alias_name);
        }
        if (errno) {
            perror("reading alias");
            exit(EXIT_FAILURE);
        }
        endaliasent();
        exit(EXIT_SUCCESS);
    }

انظر أيضًا
getgrent(3), getpwent(3), getspent(3), aliases(5)

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

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

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