open_memstream(3)

الاسم
open_memstream, open_wmemstream - فتح دفق خبيئة ذاكرة ديناميكي

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

موجز
#include <stdio.h>

FILE *open_memstream(char **ptr, size_t *sizeloc);

#include <wchar.h>

FILE *open_wmemstream(wchar_t **ptr, size_t *sizeloc);

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

open_memstream(), open_wmemstream():
    منذ glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    قبل glibc 2.10:
        _GNU_SOURCE

الوصف
تفتح الدالة open_memstream() دفقًا للكتابة إلى خبيئة ذاكرة. تخصص الدالة الخبيئة ديناميكيًا، وتنمو الخبيئة آليًا حسب الحاجة. مبدئيًا، حجم الخبيئة صفر. بعد إغلاق الدفق، يجب على المستدعي تحرير هذه الخبيئة باستخدام free(3).

تُستخدم المواقع المشار إليها بواسطة ptr وsizeloc للإبلاغ، على التوالي، عن الموقع الحالي وحجم الخبيئة. تُحدَّث المواقع المشار إليها بواسطة هذه المؤشرات في كل مرة يُفرَّغ فيها الدفق (fflush(3)) وعند إغلاق الدفق (fclose(3)). تظل هذه القيم صالحة فقط طالما لم يُجرِ المستدعي أي إخراج إضافي على الدفق. إذا أُجري إخراج إضافي، فيجب تفريغ الدفق مرة أخرى قبل محاولة الوصول إلى هذه القيم.

يُحتفظ ببايت فارغ في نهاية الخبيئة. هذا البايت غير مضمن في قيمة الحجم المخزنة في sizeloc.

يحتفظ الدفق بمفهوم الموضع الحالي، وهو صفر مبدئيًا (بداية الخبيئة). تضبط كل عملية كتابة موضع الخبيئة ضمنيًا. يمكن تغيير موضع خبيئة الدفق صراحةً باستخدام fseek(3) أو fseeko(3). نقل موضع الخبيئة إلى ما بعد نهاية البيانات المكتوبة بالفعل يملأ المسافة الفاصلة بأحرف فارغة.

تشبه open_wmemstream() open_memstream()، لكنها تعمل على محارف عريضة بدلاً من البايتات.

قيمة الإرجاع
عند الإكمال بنجاح، تُرجع open_memstream() وopen_wmemstream() مؤشر FILE. وإلا، يُرجع NULL ويُضبط errno للإشارة إلى الخطأ.

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

المعايير
POSIX.1-2008.

التاريخ

open_memstream()
    glibc 1.0.x.

open_wmemstream()
    glibc 2.4.

ملاحظات
لا يوجد واصف ملف مرتبط بدفق الملف المُعاد بواسطة هذه الدوال (أي، fileno(3) سيعيد خطأ إذا استُدعي على الدفق المُعاد).

العلل
قبل glibc 2.7، البحث بعد نهاية دفق مُنشأ بواسطة open_memstream() لا يُوسع الخبيئة؛ بدلاً من ذلك، يفشل استدعاء fseek(3) ويعيد -1.

أمثلة
انظر fmemopen(3).

انظر أيضًا
fmemopen(3), fopen(3), setbuf(3)

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

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

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