fcntl(2)

الاسم
fcntl - التلاعب بواصف الملف

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

موجز
#include <fcntl.h>

int fcntl(int fd, int op, ...);

الوصف
تجري fcntl() إحدى العمليات الموصوفة أدناه على واصف الملف المفتوح fd. تُحدد العملية بواسطة op.

تُدعم بعض العمليات أدناه فقط بدءًا من إصدار معين من نواة لينكس. الطريقة المفضلة للتحقق مما إذا كانت نواة المضيف تدعم عملية معينة هي استدعاء fcntl() مع قيمة op المطلوبة، ثم اختبار ما إذا كان الاستدعاء قد فشل مع الخطأ EINVAL، مما يشير إلى أن النواة لا تتعرف على هذه القيمة.

  مضاعفة واصف ملف

F_DUPFD(2const)
F_DUPFD_CLOEXEC(2const)

  لصائق واصف الملف

F_GETFD(2const)
F_SETFD(2const)

  لصائق حالة الملف

F_GETFL(2const)
F_SETFL(2const)

  قفل السجلات الاستشاري

F_SETLK(2const)
F_SETLKW(2const)
F_GETLK(2const)

  أقفال وصف الملف المفتوح (ليست ضمن POSIX)

F_OFD_SETLK(2const)
F_OFD_SETLKW(2const)
F_OFD_GETLK(2const)

  إدارة الإشارات

F_GETOWN(2const)
F_SETOWN(2const)
F_GETOWN_EX(2const)
F_SETOWN_EX(2const)
F_GETSIG(2const)
F_SETSIG(2const)

  الإيجارات

F_SETLEASE(2const)
F_GETLEASE(2const)

  التفويضات

F_SETDELEG(2const)
F_GETDELEG(2const)

  إشعار تغيير الملفات والدلائل (dnotify)

F_NOTIFY(2const)

  تغيير سعة الأنبوب

F_SETPIPE_SZ(2const)
F_GETPIPE_SZ(2const)

  ختم الملفات

F_ADD_SEALS(2const)
F_GET_SEALS(2const)

  تلميحات قراءة/كتابة الملف

F_GET_RW_HINT(2const)
F_SET_RW_HINT(2const)
F_GET_FILE_RW_HINT(2const)
F_SET_FILE_RW_HINT(2const)

قيمة الإرجاع
للاستدعاء الناجح، تعتمد قيمة الإرجاع على العملية.

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

الأخطاء

EACCES أو EAGAIN
    العملية محظورة بسبب أقفال تحتفظ بها عمليات أخرى.

EAGAIN
    العملية محظورة لأن الملف قد خُطط في الذاكرة بواسطة عملية أخرى.

EBADF
    fd ليس واصف ملف مفتوح

EINVAL
    القيمة المحددة في op غير معروفة لهذه النواة.

الإصدارات
يحدد POSIX.1-2024 الخيارين FD_CLOFORK و F_DUPFD_CLOFORK، لكن لينكس لا يدعمهما.

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

التاريخ
4.3BSD، SVr4، POSIX.1-1988.

انظر أيضًا
dup2(2), flock(2), open(2), socket(2), lockf(3), capabilities(7), feature_test_macros(7), lslocks(8)

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

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

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