tmpnam(3)

الاسم
tmpnam, tmpnam_r - إنشاء اسم لملف مؤقت

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

موجز
#include <stdio.h>

[[مهمل]] char *tmpnam(char *s);
[[مهمل]] char *tmpnam_r(char *s);

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

tmpnam_r()
    منذ glibc 2.19:
        _DEFAULT_SOURCE
    حتى وبتضمين glibc 2.19:
        _BSD_SOURCE || _SVID_SOURCE

الوصف
ملاحظة: تجنب استخدام هذه الدوال؛ استخدم mkstemp(3) أو tmpfile(3) بدلاً من ذلك.

ترجع الدالة tmpnam() مؤشرًا إلى سلسلة محارف تمثل اسم ملف صالح، وبحيث لم يوجد ملف بهذا الاسم في وقت ما، مما قد يجعل المبرمجين السذج يعتقدون أنه اسم مناسب لملف مؤقت. إذا كان المعامل s هو NULL، يُولد هذا الاسم في مخزن مؤقت ثابت داخلي وقد يُستبدل بالاستدعاء التالي لـ tmpnam(). إذا لم يكن s هو NULL، يُنسخ الاسم إلى مصفوفة المحارف (بطول لا يقل عن L_tmpnam) المشار إليها بواسطة s وتُرجع القيمة s في حالة النجاح.

يحتوي اسم المسار المُنشأ على بادئة دليل P_tmpdir. (كل من L_tmpnam و P_tmpdir مُعرفان في <stdio.h>، تمامًا مثل TMP_MAX المذكور أدناه.)

تؤدي الدالة tmpnam_r() نفس مهمة tmpnam()، لكنها ترجع NULL (للإشارة إلى خطأ) إذا كان s هو NULL.

قيمة الإرجاع
ترجع هذه الدوال مؤشرًا إلى اسم ملف مؤقت فريد، أو NULL إذا تعذر توليد اسم فريد.

الأخطاء
لم تُعرّف أي أخطاء.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
tmpnam() | سلامة الخيوط | MT-Unsafe race:tmpnam/!s
tmpnam_r() | سلامة الخيوط | MT-Safe

المعايير

tmpnam()
    C11, POSIX.1-2008.

tmpnam_r()
    لا شيء.

التاريخ

tmpnam()
    SVr4, 4.3BSD, C89, POSIX.1-2001. مهمل في POSIX.1-2008.

tmpnam_r()
    سولاريس.

ملاحظات
تولد الدالة tmpnam() سلسلة محارف مختلفة في كل مرة تُستدعى فيها، حتى TMP_MAX مرة. إذا استُدعيت أكثر من TMP_MAX مرة، يكون السلوك مُعرفًا بالتنفيذ.

على الرغم من أن هذه الدوال تولد أسماء يصعب تخمينها، إلا أنه من الممكن مع ذلك بين الوقت الذي يُرجع فيه اسم المسار والوقت الذي يفتحه فيه البرنامج، أن ينشئ برنامج آخر اسم المسار هذا باستخدام open(2)، أو ينشئه كرابط رمزي. قد يؤدي هذا إلى ثغرات أمنية. لتجنب هذه الاحتمالات، استخدم علامة O_EXCL من open(2) لفتح اسم المسار. أو الأفضل من ذلك، استخدم mkstemp(3) أو tmpfile(3).

لا يمكن للتطبيقات المحمولة التي تستخدم الخيوط استدعاء tmpnam() بمعامل NULL إذا كان أي من _POSIX_THREADS أو _POSIX_THREAD_SAFE_FUNCTIONS مُعرفًا.

العلل
لا تستخدم هذه الدوال أبدًا. استخدم mkstemp(3) أو tmpfile(3) بدلاً من ذلك.

انظر أيضًا
mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)

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

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

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