.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Title "ERR_PUT_ERROR 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ERR_PUT_ERROR 3ssl "7 أبريل 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم ERR_raise, ERR_raise_data, ERR_put_error, ERR_add_error_data, ERR_add_error_vdata, ERR_add_error_txt, ERR_add_error_mem_bio \&\- تسجيل خطأ .SH موجز .IX Header موجز .Vb 1 \& #include \& \& void ERR_raise(int lib, int reason); \& void ERR_raise_data(int lib, int reason, const char *fmt, ...); \& \& void ERR_add_error_data(int num, ...); \& void ERR_add_error_vdata(int num, va_list arg); \& void ERR_add_error_txt(const char *sep, const char *txt); \& void ERR_add_error_mem_bio(const char *sep, BIO *bio); .Ve .PP الدالة التالية أصبحت مهجورة منذ OpenSSL 3.0، ويمكن إخفاؤها تمامًا عبر تعريف \fBOPENSSL_API_COMPAT\fP بقيمة إصدار مناسبة، انظر \fBopenssl_user_macros\fP\|(7): .PP .Vb 1 \& void ERR_put_error(int lib, int func, int reason, const char *file, int line); .Ve .SH الوصف .IX Header الوصف \&\fBERR_raise()\fP يُضيف خطأً جديدًا إلى قائمة انتظار الأخطاء الخاصة بالخيط. حدث الخطأ في المكتبة \fBlib\fP للسبب المُعطى بواسطة كود \&\fBreason\fP. علاوةً على ذلك، يُحفظ اسم الملف، والسطر، واسم الدالة حيث حدث الخطأ مع سجل الخطأ. .PP \&\fBERR_raise_data()\fP يفعل نفس الشيء مثل \fBERR_raise()\fP، لكنه يسمح أيضًا للمُستدعي بتحديد معلومات إضافية كسلسلة تنسيق \fBfmt\fP وعدد عشوائي من القيم، والتي تُعالج باستخدام \fBBIO_snprintf\fP\|(3). .PP \&\fBERR_put_error()\fP يُضيف كود خطأ إلى قائمة انتظار الأخطاء الخاصة بالخيط. يُشير إلى أن خطأ كود السبب \fBreason\fP حدث في الدالة \&\fBfunc\fP من المكتبة \fBlib\fP، في رقم السطر \fBline\fP من \fBfile\fP. تُستدعى هذه الدالة عادةً بواسطة ماكرو. .PP \&\fBERR_add_error_data()\fP يُربط تسلسل وسائط سلسلة المحارف \fBnum\fP الخاصة به كبيانات إضافية مع كود الخطأ المُضاف آخرًا. \&\fBERR_add_error_vdata()\fP مشابه باستثناء أن الوسيطة هي \fBva_list\fP. تُلحق الاستدعاءات المتعددة لهذه الدوال بالجزء العلوي الحالي لقائمة انتظار الأخطاء. يُحدد الطول الإجمالي لبيانات سلسلة المحارف لكل خطأ بـ 4096 حرفًا. .PP \&\fBERR_add_error_txt()\fP يُلحق سلسلة المحارف النصية المُعطاة كبيانات إضافية بآخر إدخال في قائمة انتظار الأخطاء، بعد إدراج سلسلة الفاصل الاختيارية إذا لم تكن NULL ولم يحتوي إدخال الخطأ العلوي بعد على بيانات إضافية. في حالة وجود الفاصل في نهاية النص، لا يُلحق بالبيانات. قد تكون وسيطة \fBsep\fP مثلاً "\en" لإدراج فاصل سطر عند الحاجة. إذا أصبحت البيانات المرتبطة أطول من 4096 حرفًا (وهو الحد المُعطى أعلاه)، تُقسم عبر عدد كافٍ من النسخ الجديدة لآخر إدخال في قائمة انتظار الأخطاء. .PP \&\fBERR_add_error_mem_bio()\fP هو نفسه \fBERR_add_error_txt()\fP باستثناء أن سلسلة المحارف النصية تُؤخذ من BIO الذاكرة المُعطى. يُلحق \*(Aq\e0\*(Aq بمحتويات BIO إذا لم تكن مُنتهية بـ NUL بالفعل. .PP \&\fBERR_load_strings\fP\|(3) يمكن استخدامه لتسجيل سلاسل محارف الأخطاء بحيث يمكن للتطبيق إنشاء رسائل خطأ قابلة للقراءة البشرية لكود الخطأ. .SS "الإبلاغ عن الأخطاء" .IX Subsection "الإبلاغ عن الأخطاء" \fIتقارير مكتبة OpenSSL\fP .IX Subsection "تقارير مكتبة OpenSSL" .PP كل مكتبة فرعية من OpenSSL لها كود مكتبة \fBERR_LIB_XXX\fP ولها مجموعتها الخاصة من أكواد السبب \fBXXX_R_...\fP. يُمرر كلاهما معًا إلى \&\fBERR_raise()\fP و \fBERR_raise_data()\fP، ويُنتج التركيبة في النهاية نص الخطأ الصحيح للخطأ المُبلغ عنه. .PP كل هذه الماكروات والأرقام التي تمتلكها كقيم خاصة بمكتبات OpenSSL. تتكون أكواد سبب OpenSSL عادةً من أوصاف خطأ نصية. على سبيل المثال، تُبلغ الدالة \fBssl3_read_bytes()\fP عن "فشل المصافحة" كما يلي: .PP .Vb 1 \& ERR_raise(ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE); .Ve .PP هناك استثناءان: .IP \fBERR_LIB_SYS\fP 4 .IX Item ERR_LIB_SYS يشير "رمز المكتبة" هذا إلى أنه يتم الإبلاغ عن خطأ نظام. في هذه الحالة، \fIيجب\fP أن يكون رمز السبب المُعطى لـ \fBERR_raise()\fP و \fBERR_raise_data()\fP هو \fBerrno\fP\|(3). .Sp .Vb 1 \& ERR_raise(ERR_LIB_SYS, errno); .Ve .IP \fBERR_R_XXX\fP 4 .IX Item ERR_R_XXX تُعتبر هذه المجموعة من رموز الأخطاء عامة، ويمكن استخدامها مع أي رمز مكتبة فرعية. .Sp .Vb 1 \& ERR_raise(ERR_LIB_RSA, ERR_R_PASSED_INVALID_ARGUMENT); .Ve .PP \fIأجزاء البرامج الأخرى\fP .IX Subsection "أجزاء البرامج الأخرى" .PP يجب على أجزاء البرامج الأخرى التي قد ترغب في استخدام نظام الإبلاغ عن الأخطاء في OpenSSL، مثل المحركات أو التطبيقات، الحصول على أرقامها الخاصة عادةً. .IP \(bu 4 للحصول على رمز "مكتبة"، استدعِ \fBERR_get_next_error_library\fP\|(3)؛ يعطي هذا رمزًا ديناميكيًا للكود المستدعي، قابل للاستخدام طوال مدة العملية. .IP \(bu 4 يتم تحديد أو توليد رموز السبب لكل "مكتبة" من هذا القبيل بواسطة مؤلفي ذلك الكود. يجب أن تكون أرقامًا في النطاق من 1 إلى 524287 (بمعنى آخر، يجب أن تكون أعدادًا صحيحة غير صفرية غير موقعة بطول 18 بت). .PP الاستثناءات المذكورة في "تقارير مكتبة OpenSSL" أعلاه صالحة لأجزاء البرامج الأخرى، أي يمكنها استخدام \fBERR_LIB_SYS\fP للإبلاغ عن أخطاء النظام: .PP .Vb 1 \& ERR_raise(ERR_LIB_SYS, errno); .Ve .PP \&... ويمكنها استخدام وحدات ماكرو \fBERR_R_XXX\fP مع رمز "المكتبة" الخاص بها. .PP .Vb 1 \& int app_lib_code = ERR_get_next_error_library(); \& \& /* ... */ \& \& ERR_raise(app_lib_code, ERR_R_PASSED_INVALID_ARGUMENT); .Ve .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&لا تُرجع \fBERR_raise()\fP، \fBERR_raise_data()\fP، \fBERR_put_error()\fP، \&\fBERR_add_error_data()\fP، \fBERR_add_error_vdata()\fP \&\fBERR_add_error_txt()\fP، و \fBERR_add_error_mem_bio()\fP أي قيم. .SH ملاحظات .IX Header ملاحظات \&\fBERR_raise()\fP، \fBERR_raise()\fP و \fBERR_put_error()\fP مُنفذة كوحدات ماكرو. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBERR_load_strings\fP\|(3)، \fBERR_get_next_error_library\fP\|(3) .SH التاريخ .IX Header التاريخ أُضيفت ERR_raise، ERR_raise_data، \fBERR_add_error_txt()\fP و \fBERR_add_error_mem_bio()\fP في OpenSSL 3.0. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2020 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة. .PP مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط . .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .