BIO_NEW(3ssl)

الاسم
BIO_new_ex, BIO_new, BIO_up_ref, BIO_free, BIO_vfree, BIO_free_all - دوال تخصيص وتحرير BIO

موجز
 #include <openssl/bio.h>

 BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *type);
 BIO *BIO_new(const BIO_METHOD *type);
 int BIO_up_ref(BIO *a);
 int BIO_free(BIO *a);
 void BIO_vfree(BIO *a);
 void BIO_free_all(BIO *a);

الوصف
ترجع الدالة BIO_new_ex() BIO جديد باستخدام الطريقة type المرتبطة بسياق المكتبة libctx (انظر OSSL_LIB_CTX(3)). قد يكون سياق المكتبة NULL للإشارة إلى سياق المكتبة المبدئي. type يجب ألا يكون NULL.

BIO_new() هي نفس BIO_new_ex() باستثناء أن سياق المكتبة المبدئي يُستخدم آلي.

تزيد BIO_up_ref() عدد المراجع المرتبط بكائن BIO.

تحرر BIO_free() BIO واحد، وتحرر BIO_vfree() أيضًا BIO واحد لكنها لا ترجع قيمة. إذا كان a NULL فلا يُفعل شيء. قد يكون لاستدعاء BIO_free() بعض التأثير على بنية الإدخال/الإخراج الأساسية، مثلاً قد يُغلق الملف المشار إليه في ظروف معينة. لمزيد من التفاصيل انظر أوصاف BIO_METHOD الفردية.

تحرر BIO_free_all() سلسلة BIO كاملة، لا تتوقف إذا حدث خطأ أثناء تحرير BIO فردي في السلسلة. إذا كان a NULL فلا يُفعل شيء.

القيم المُرجعة
ترجع BIO_new_ex() و BIO_new() BIO منشأ حديثًا أو NULL إذا فشل الاستدعاء.

ترجع BIO_up_ref() و BIO_free() 1 للنجاح و0 للفشل.

لا ترجع BIO_free_all() و BIO_vfree() قيمًا.

ملاحظات
إذا استدعي BIO_free() على سلسلة BIO، فسيحرر BIO واحدا فقط مما يؤدي إلى تسرب في الذاكرة.

استدعاء BIO_free_all() على BIO واحد له نفس تأثير استدعاء BIO_free() عليه باستثناء القيمة المرجعة المهملة.

التاريخ
أُزيلت BIO_set() في OpenSSL 1.1.0 لأن نوع BIO أصبح معتمًا الآن.

أُضيفت BIO_new_ex() في OpenSSL 3.0.

أمثلة
أنشئ ذاكرة BIO:

 BIO *mem = BIO_new(BIO_s_mem());

حقوق النسخ
حقوق النشر 2000-2021 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

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

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

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