mkfifo(3)

الاسم
mkfifo, mkfifoat - إنشاء ملف FIFO خاص (أنبوب مسمى)

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

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

int mkfifo(const char *path, mode_t mode);

#include <fcntl.h>           /* تعريف ثوابت AT_* */
#include <sys/stat.h>

int mkfifoat(int dirfd, const char *path, mode_t mode);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

mkfifoat():
    منذ glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    قبل glibc 2.10:
        _ATFILE_SOURCE

الوصف
تنشئ الدالة mkfifo() ملف FIFO خاص باسم path. يحدد mode أذونات FIFO. تُعدل هذه الأذونات بواسطة umask للعملية بالطريقة المعتادة: أذونات الملف المنشأ هي (mode & ~umask).

ملف FIFO الخاص مشابه للأنبوب، باستثناء أنه يُنشأ بطريقة مختلفة. بدلاً من كونه قناة اتصال مجهولة، يُدخل ملف FIFO الخاص إلى نظام الملفات باستدعاء mkfifo().

بمجرد إنشاء ملف FIFO خاص بهذه الطريقة، يمكن لأي عملية فتحه للقراءة أو الكتابة، بنفس طريقة الملف العادي. ومع ذلك، يجب أن يكون مفتوحًا من كلا الطرفين في وقت واحد قبل المتابعة في أي عمليات إدخال أو إخراج عليه. فتح FIFO للقراءة يُحجب عادةً حتى تفتح عملية أخرى نفس FIFO للكتابة، والعكس صحيح. انظر fifo(7) للتعامل غير المُحجب مع ملفات FIFO الخاصة.

  mkfifoat()
تعمل الدالة mkfifoat() بنفس طريقة mkfifo() تمامًا، باستثناء الاختلافات الموصوفة هنا.

إذا كان path نسبيًا، فسيُفسر بالنسبة للدليل المشار إليه بواصف الملف dirfd (بدلاً من تفسيره بالنسبة لدليل العمل الحالي للعملية المستدعية، كما تفعل mkfifo() لمسار نسبي).

إذا كان path نسبيًا وكان dirfd هو القيمة الخاصة AT_FDCWD، فسيُفسر path بالنسبة لدليل العمل الحالي للعملية المستدعية (مثل mkfifo()).

إذا كان المسار path مطلقاً، فُيتجاهل dirfd.

انظر openat(2) لشرح الحاجة إلى mkfifoat().

قيمة الإرجاع
عند النجاح، تُرجع mkfifo() و mkfifoat() القيمة 0. عند الخطأ، تُرجع القيمة -1 ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

EACCES
    أحد الدلائل في path لم يسمح بإذن البحث (التنفيذ).

EBADF
    (mkfifoat()) path نسبي لكن dirfd ليس AT_FDCWD ولا واصف ملف صالح.

EDQUOT
    استُنفدت حصة المستخدم من كتل القرص أو الفهارس (inodes) على نظام الملفات.

EEXIST
    path موجود مسبقًا. يتضمن ذلك الحالة التي يكون فيها path وصلة رمزية، سواء كانت معلقة أم لا.

ENAMETOOLONG
    إما أن الحجم الكلي لـ path أكبر من PATH_MAX، أو أن مكون اسم ملف فردي له طول أكبر من NAME_MAX. في نظام GNU، لا يوجد حد مفروض على طول اسم الملف الكلي، لكن بعض أنظمة الملفات قد تضع حدودًا على طول المكون.

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

ENOSPC
    الدليل أو نظام الملفات لا يحتوي على مساحة للملف الجديد.

ENOTDIR
    المكون المستخدم كدليل في path ليس دليلاً في الواقع.

ENOTDIR
    (mkfifoat()) path نسبي و dirfd هو واصف ملف يشير إلى ملف غير دليل.

EROFS
    يشير path إلى نظام ملفات للقراءة فقط.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
mkfifo(), mkfifoat() | سلامة الخيوط | MT-Safe

الإصدارات
نُفذت باستخدام mknodat(2).

المعايير
POSIX.1-2008.

التاريخ

mkfifo()
    POSIX.1-2001.

mkfifoat()
    glibc 2.4. POSIX.1-2008.

انظر أيضًا
mkfifo(1)، close(2)، open(2)، read(2)، stat(2)، umask(2)، write(2)، fifo(7)

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

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

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