- trixie-backports 4.31.0-1~bpo13+1
- testing 4.31.0-1
- unstable 4.31.0-1
| error(3) | Library Functions Manual | error(3) |
الاسم¶
error, error_at_line, error_message_count, error_one_per_line, error_print_progname - دوال الإبلاغ عن الأخطاء في glibc
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <error.h>
void error(int status, int errnum, const char *format, ...);
void error_at_line(int status, int errnum, const char *filename,
unsigned int linenum, const char *format, ...);
extern unsigned int error_message_count; extern int error_one_per_line;
extern void (*error_print_progname)(void);
الوصف¶
error() دالة عامة للإبلاغ عن الأخطاء. تُفرغ stdout، ثم تُخرج إلى stderr اسم البرنامج، ونقطتين رأسيتين ومسافة، والرسالة المحددة بواسطة سلسلة التنسيق بنمط printf(3) format، وإذا كان errnum غير صفري، نقطتين رأسيتين ومسافة ثانية متبوعة بالسلسلة المعطاة بواسطة strerror(errnum). أي وسائط مطلوبة لـ format يجب أن تتبع format في قائمة الوسائط. يُنهى الإخراج بحرف سطر جديد.
اسم البرنامج المطبوع بواسطة error() هو قيمة المتغير العام program_invocation_name(3). program_invocation_name له في البداية نفس قيمة argv[0] للدالة main(). يمكن تعديل قيمة هذا المتغير لتغيير مخرجات error().
إذا كان status له قيمة غير صفرية، فإن error() تستدعي exit(3) لإنهاء البرنامج باستخدام القيمة المعطاة كحالة خروج؛ وإلا فإنها تعود بعد طباعة رسالة الخطأ.
الدالة error_at_line() هي نفسها تمامًا error()، باستثناء إضافة الوسيطتين filename و linenum. المخرجات المنتجة هي كما في error()، باستثناء أنه بعد اسم البرنامج يُكتب: نقطتان رأسيتان، قيمة filename، نقطتان رأسيتان، وقيمة linenum. قد تكون قيم المعالج الأولي __LINE__ و __FILE__ مفيدة عند استدعاء error_at_line()، ولكن يمكن استخدام قيم أخرى أيضًا. على سبيل المثال، يمكن أن تشير هذه الوسائط إلى موقع في ملف إدخال.
إذا كان المتغير العام error_one_per_line مضبوطًا على قيمة غير صفرية، فإن سلسلة من استدعاءات error_at_line() بنفس قيمة filename و linenum ستؤدي إلى إخراج رسالة واحدة فقط (الأولى).
المتغير العام error_message_count يعد عدد الرسائل التي تم إخراجها بواسطة error() و error_at_line().
إذا تم تعيين المتغير العام error_print_progname إلى عنوان دالة (أي ليس NULL)، فسيتم استدعاء تلك الدالة بدلاً من بادئة الرسالة باسم البرنامج والنقطتين الرأسيتين. يجب على الدالة طباعة سلسلة محارف مناسبة إلى stderr.
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| error() | سلامة الخيوط | المنطقة (locale) آمنة لتعدد المسالك (MT-Safe) |
| error_at_line() | سلامة الخيوط | MT-Unsafe race: error_at_line/error_one_per_line locale |
يُوصل المتغير الداخلي error_one_per_line (بدون أي شكل من أشكال التزامن، ولكن نظرًا لأنه int يُستخدم مرة واحدة، يجب أن يكون آمنًا بما يكفي) وإذا كان error_one_per_line مضبوطًا على قيمة غير صفرية، فإن المتغيرات الثابتة الداخلية (غير المكشوفة للمستخدمين) المستخدمة لحفظ اسم الملف ورقم السطر المطبوعين آخر مرة يُوصل إليها وتُعدل بدون تزامن؛ التحديث ليس ذريًا ويحدث قبل تعطيل الإلغاء، لذا يمكن مقاطعته فقط بعد تعديل أحد المتغيرين. بعد ذلك، يكون error_at_line() مشابهًا جدًا لـ error().
المعايير¶
GNU.
انظر أيضًا¶
err(3), errno(3), exit(3), perror(3), program_invocation_name(3), strerror(3)
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 2 مايو 2024 | صفحات دليل لينكس 6.9.1 |