Scroll to navigation

mkfifo(3) Library Functions Manual 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 للإشارة إلى الخطأ.

الأخطاء

أحد الدلائل في path لم يسمح بإذن البحث (التنفيذ).
(mkfifoat()) path نسبي لكن dirfd ليس AT_FDCWD ولا واصف ملف صالح.
استُنفدت حصة المستخدم من كتل القرص أو الفهارس (inodes) على نظام الملفات.
path موجود مسبقًا. يتضمن ذلك الحالة التي يكون فيها path وصلة رمزية، سواء كانت معلقة أم لا.
إما أن الحجم الكلي لـ path أكبر من PATH_MAX، أو أن مكون اسم ملف فردي له طول أكبر من NAME_MAX. في نظام GNU، لا يوجد حد مفروض على طول اسم الملف الكلي، لكن بعض أنظمة الملفات قد تضع حدودًا على طول المكون.
مكون الدليل في path غير موجود أو أنه وصلة رمزية معلقة.
الدليل أو نظام الملفات لا يحتوي على مساحة للملف الجديد.
المكون المستخدم كدليل في path ليس دليلاً في الواقع.
(mkfifoat()) path نسبي و dirfd هو واصف ملف يشير إلى ملف غير دليل.
يشير path إلى نظام ملفات للقراءة فقط.

السمات

للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).

الواجهة السمة القيمة
mkfifo(), mkfifoat() سلامة الخيوط MT-Safe

الإصدارات

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

المعايير

POSIX.1-2008.

التاريخ

POSIX.1-2001.
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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

8 فبراير 2026 صفحات دليل لينكس 6.18