open_memstream(3)

NUME
open_memstream, open_wmemstream, open_wmemstream - deschide un flux de memorie tampon dinamică

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <stdio.h>

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

#include <wchar.h>

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

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

open_memstream(), open_wmemstream():
    Începând cu glibc 2.10
        _POSIX_C_SOURCE >= 200809L
    Înainte de glibc 2.10:
        _GNU_SOURCE

DESCRIERE
Funcția open_memstream() deschide un flux pentru a scrie într-o memorie tampon. Funcția alocă dinamic memoria tampon, iar aceasta crește automat în funcție de necesități. Inițial, memoria tampon are dimensiunea zero. După închiderea fluxului, apelantul trebuie să elibereze (să apeleze free(3)) această memorie tampon.

Locațiile indicate de ptr și sizeloc sunt utilizate pentru a raporta, respectiv, locația curentă și dimensiunea memoriei tampon. Locațiile la care se face referire prin acești indicatori sunt actualizate de fiecare dată când fluxul este golit (fflush(3)) și când fluxul este închis (fclose(3)). Aceste valori rămân valabile doar atât timp cât apelantul nu mai efectuează nici o ieșire pe flux. În cazul în care se efectuează alte ieșiri, fluxul trebuie să fie din nou curățat înainte de a încerca să acceseze aceste valori.

La sfârșitul memoriei tampon se păstrează un octet nul. Acest octet nu este este inclus în valoarea dimensiunii stocată la sizeloc.

Fluxul păstrează noțiunea de poziție curentă, care este inițial zero (începutul memoriei tampon). Fiecare operație de scriere ajustează implicit poziția memoriei tampon. Poziția memoriei tampon a fluxului poate fi modificată în mod explicit cu fseek(3) sau fseeko(3). Mutarea poziției în memoria tampon după sfârșitul datelor deja scrise umple spațiul intermediar cu caractere nule.

open_wmemstream() este similară cu open_memstream(), dar operează pe caractere late în loc de octeți.

VALOAREA RETURNATĂ
La finalizarea cu succes, open_memstream() și open_wmemstream() returnează un indicator FILE. În caz contrar, se returnează NULL, iar errno este configurată pentru a indica eroarea.

VERSIUNI
open_memstream() era deja disponibilă în glibc 1.0.x. open_wmemstream() este disponibilă din glibc 2.4.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
open_memstream(), open_wmemstream() | Siguranța firelor | MT-Safe

STANDARDE
POSIX.1-2008. Această funcție nu este specificată în POSIX.1-2001 și nu este disponibilă pe scară largă în alte sisteme.

NOTE
Nu există niciun descriptor de fișier asociat cu fluxul de fișiere returnat de aceste funcții (de exemplu, fileno(3) va returna o eroare dacă este apelat pe fluxul returnat).

ERORI
Înainte de glibc 2.7, căutarea dincolo de capătul unui flux creat de open_memstream() nu mărește memoria tampon; în schimb, apelul fseek(3) eșuează, returnând -1.

EXEMPLE
A se vedea fmemopen(3).

CONSULTAȚI ȘI
fmemopen(3), fopen(3), setbuf(3)

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.