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 *pathname, mode_t mode);
#include <fcntl.h>           /* تعريف ثوابت AT_* */
#include <sys/stat.h>
int mkfifoat(int dirfd, const char *pathname, mode_t mode);

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

mkfifoat():


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

الوصف

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

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

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

mkfifoat()

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

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

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

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

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

قيمة الإرجاع

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

الأخطاء

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

السمات

للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر 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.

2 مايو 2024 صفحات دليل لينكس 6.9.1