perror(3)

الاسم
perror - طباعة رسالة خطأ نظام

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

موجز
#include <stdio.h>

void perror(const char *s);

#include <errno.h>

int errno;  /* Not really declared this way; see errno(3) */

[[deprecated]] const char *const sys_errlist[];
[[deprecated]] int sys_nerr;

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

sys_errlist, sys_nerr:
    من glibc 2.19 إلى glibc 2.31:
        _DEFAULT_SOURCE
    glibc 2.19 وما قبلها:
        _BSD_SOURCE

الوصف
تُنتج الدالة perror() رسالة على الخطأ المعياري تصف آخر خطأ وُوجِه أثناء استدعاء دالة نظام أو مكتبة.

أولاً (إذا كان s ليس NULL و *s ليس بايت فارغ ('\0'))، تُطبع سلسلة المحارف الوسيطة s، متبوعة بنقطتين وفراغ. ثم تُطبع رسالة خطأ مطابقة للقيمة الحالية لـ errno وسطر جديد.

لتحقيق أقصى فائدة، يجب أن تتضمن سلسلة المحارف الوسيطة اسم الدالة التي تسببت في الخطأ.

يمكن استخدام قائمة الأخطاء العامة sys_errlist[]، التي يمكن فهرستها بواسطة errno، للحصول على رسالة الخطأ بدون السطر الجديد. أكبر رقم رسالة مُقدَّم في الجدول هو sys_nerr-1. كن حذرًا عند الوصول المباشر إلى هذه القائمة، لأن قيم الأخطاء الجديدة قد لا تُضاف إلى sys_errlist[]. استخدام sys_errlist[] أصبح مهملاً الآن؛ استخدم strerror(3) بدلاً من ذلك.

عند فشل استدعاء نظام، فإنه عادةً ما يُرجع -1 ويُعيِّن المتغير errno إلى قيمة تصف ما حدث من خطأ. (يمكن العثور على هذه القيم في <errno.h>.) تفعل العديد من دوال المكتبة الشيء نفسه. تخدم الدالة perror() في ترجمة رمز الخطأ هذا إلى شكل قابل للقراءة البشرية. لاحظ أن errno غير مُعرَّف بعد استدعاء نظام ناجح أو استدعاء دالة مكتبة ناجح: قد يُغيِّر هذا الاستدعاء هذا المتغير، حتى لو نجح، على سبيل المثال لأنه استخدم داخليًا دالة مكتبة أخرى فشلت. وبالتالي، إذا لم يتبع استدعاء فاشل فورًا استدعاء لـ perror()، فيجب حفظ قيمة errno.

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

المعايير

errno
perror()
    C11, POSIX.1-2008.

sys_nerr
sys_errlist
    BSD.

التاريخ

errno
perror()
    POSIX.1-2001, C89, 4.3BSD.

sys_nerr
sys_errlist
    أُزيل في glibc 2.32.

انظر أيضًا
err(3), errno(3), error(3), strerror(3)

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

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

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