setxattr(2)

الاسم
setxattr, lsetxattr, fsetxattr - تعيين قيمة سمة ممتدة

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

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

int setxattr(size_t size;
              const char *path, const char *name,
              const void value[size], size_t size, int flags);
int lsetxattr(size_t size;
              const char *path, const char *name,
              const void value[size], size_t size, int flags);
int fsetxattr(size_t size;
              int fd, const char *name,
              const void value[size], size_t size, int flags);

الوصف
السمات الممتدة هي أزواج الاسم:القيمة المرتبطة بالفهارس (الملفات، المجلدات، الروابط الرمزية، إلخ). وهي امتدادات للسمات العادية المرتبطة بكافة الفهارس في النظام (أي بيانات stat(2)). يمكن العثور على نظرة شاملة لمفاهيم السمات الممتدة في xattr(7).

setxattr() يضبط value للسمة الممتدة المُعرَّفة بـ name والمرتبطة بـ path المُعطى في نظام الملفات. تُحدد الوسيطة size الحجم (بالبايت) لـ value؛ يُسمح بقيمة طولها صفر.

lsetxattr() مطابق لـ setxattr()، باستثناء حالة الارتباط الرمزي، حيث تُضبط السمة الممتدة على الارتباط نفسه، وليس الملف الذي يشير إليه.

fsetxattr() مطابق لـ setxattr()، لكن تُضبط السمة الممتدة على الملف المفتوح المشار إليه بـ fd (كما يُعاد بواسطة open(2)) بدلاً من path.

اسم السمة الممتدة هو سلسلة منتهية بقيمة خالية. يتضمن name بادئة نطاق أسماء؛ قد توجد عدة نطاقات أسماء منفصلة مرتبطة بعقدة فهرسة فردية. value للسمة الممتدة هو جزء من بيانات نصية أو ثنائية عشوائية بطول محدد.

بشكل مبدئي (أي، flags يساوي صفر)، تُنشأ السمة الممتدة إذا لم تكن موجودة، أو يُستبدل value إذا كانت السمة موجودة بالفعل. لتعديل هذه الدلالات، يمكن تحديد إحدى القيم التالية في flags:

XATTR_CREATE
    ينفذ إنشاءً خالصًا، يفشل إذا كانت السمة المُسماة موجودة بالفعل.

XATTR_REPLACE
    ينفذ عملية استبدال خالصة، تفشل إذا كانت السمة المُسماة غير موجودة بالفعل.

قيمة الإرجاع
يُعاد صفر عند النجاح. ويُعاد -1 عند الفشل وتُضبط errno للإشارة إلى الخطأ.

الأخطاء

EDQUOT
    حدود حصة القرص تعني عدم وجود مساحة كافية متبقية لتخزين السمة الممتدة.

EEXIST
    حُدد XATTR_CREATE، والسمة موجودة بالفعل.

ENODATA
    حُدد XATTR_REPLACE، والسمة غير موجودة.

ENOSPC
    لا توجد مساحة كافية متبقية لتخزين السمة الممتدة.

ENOTSUP
    بادئة نطاق الأسماء لـ name غير صالحة.

ENOTSUP
    السمات الممتدة غير مدعومة من قبل نظام الملفات، أو معطلة،

EPERM
    الملف معلم بأنه غير قابل للتغيير أو للإلحاق فقط. (انظر FS_IOC_SETFLAGS(2const).)

بالإضافة إلى ذلك، يمكن أن تحدث أيضًا الأخطاء الموثقة في stat(2).

ERANGE
    حجم name أو value يتجاوز حدًا خاصًا بنظام الملفات.

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

التاريخ
لينكس 2.4، glibc 2.3.

انظر أيضًا
getfattr(1), setfattr(1), getxattr(2), listxattr(2), open(2), removexattr(2), stat(2), symlink(7), xattr(7)

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

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

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