ftok(3)

الاسم
ftok - تحويل اسم مسار ومعرف مشروع إلى مفتاح IPC من نوع System V

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

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

key_t ftok(const char *path, int proj_id);

الوصف
تستخدم الدالة ftok() هوية الملف المسمى بالمسار path (الذي يجب أن يشير إلى ملف موجود وقابل للوصول) وأقل 8 بتات أهمية من proj_id (التي يجب أن تكون غير صفرية) لتوليد مفتاح IPC من نوع key_t لنظام System V، مناسب للاستخدام مع msgget(2) أو semget(2) أو shmget(2).

تكون القيمة الناتجة نفسها لجميع أسماء المسارات التي تسمي نفس الملف، عند استخدام نفس قيمة proj_id. يجب أن تكون القيمة المعادة مختلفة عندما تختلف الملفات (الموجودة في نفس الوقت) أو معرفات المشاريع.

قيمة الإرجاع
عند النجاح، تُعاد القيمة المولدة key_t. عند الفشل، تُعاد -1، مع errno الذي يشير إلى الخطأ كما في استدعاء النظام stat(2).

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

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

التاريخ
POSIX.1-2001.

ملاحظات
في بعض الأنظمة القديمة، كان النموذج الأولي:

    key_t ftok(char *path, char proj_id);

اليوم، proj_id هو int، ولكن ما زالت تُستخدم 8 بتات فقط. الاستخدام النموذجي يحتوي على حرف ASCII proj_id، ولهذا يُقال إن السلوك غير محدد عندما يكون proj_id صفرًا.

بالطبع، لا يمكن تقديم ضمان بأن key_t الناتج فريد. عادةً، تجمع محاولة بأقصى جهد بين بايت proj_id المعطى، وأقل 16 بتًا من رقم inode، وأقل 8 بتات من رقم الجهاز في نتيجة 32 بت. قد تحدث تصادمات بسهولة، على سبيل المثال بين الملفات على /dev/hda1 والملفات على /dev/sda1.

أمثلة
انظر semget(2).

انظر أيضًا
msgget(2), semget(2), shmget(2), stat(2), sysvipc(7)

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

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

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