Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       setbuf, setbuffer, setlinebuf, setvbuf, setvbuf - operații asupra memoriei tampon a fluxurilor

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <stdio.h>

       int setvbuf(FILE *restrict stream, char buf[restrict .size],
                   int mode, size_t size);

       void setbuf(FILE *restrict stream, char *restrict buf);
       void setbuffer(FILE *restrict stream, char buf[restrict .size],
                   size_t size);
       void setlinebuf(FILE *stream);

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

       setbuffer(), setlinebuf():
           Începând cu glibc 2.19:
               _DEFAULT_SOURCE
           glibc 2.19 și versiunile anterioare:
               _BSD_SOURCE

DESCRIERE

       Cele  trei tipuri de operații cu memorie tampon disponibile, sunt: fără memorie tampon, cu memorie tampon
       de bloc și cu memorie tampon de  linie.  Atunci  când  un  flux  de  ieșire  este  fără  memorie  tampon,
       informațiile  apar  în  fișierul sau terminalul de destinație imediat ce sunt scrise; atunci când este cu
       memorie tampon de bloc, mai multe caractere sunt salvate și scrise  ca  un  bloc;  atunci  când  este  cu
       memorie  tampon  de  linie, caracterele sunt salvate până când este emisă o nouă linie sau până când este
       citită o intrare din orice flux atașat la un dispozitiv terminal (de  obicei  stdin).  Funcția  fflush(3)
       poate fi utilizată pentru a forța ieșirea anticipată a blocului; (a se vedea fclose(3)).

       În  mod  normal,  toate fișierele sunt stocate în bloc. În cazul în care un flux se referă la un terminal
       (așa cum face în mod normal stdout), acesta este stocat în memoria tampon  pe  linie.  Fluxul  de  eroare
       standard stderr este întotdeauna fără stocare în memoria tampon în mod implicit.

       Funcția  setvbuf()  poate fi utilizată pe orice flux deschis pentru a modifica memoria tampon. Argumentul
       mode trebuie să fie una dintre următoarele trei macrocomenzi:

              _IONBF fără stocare în memoria tampon

              _IOLBF stocare în memoria tampon pe linie

              _IOFBF stocare completă în memoria tampon

       Cu excepția fișierelor fără memorie tampon, argumentul buf trebuie  să  indice  o  memorie  tampon  cu  o
       lungime de cel puțin size octeți; această memorie tampon va fi utilizată în locul celei curente. În cazul
       în  care  argumentul buf este NULL, este afectat doar modul; la următoarea operație de citire sau scriere
       se va aloca o nouă memorie tampon. Funcția setvbuf() poate fi utilizată numai după deschiderea unui  flux
       și înainte de a se efectua orice altă operațiune asupra acestuia.

       Celelalte  trei  apeluri  sunt,  de fapt, simple alias pentru apelurile către setvbuf(). Funcția setbuf()
       este exact echivalentă cu apelul

           setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);

       Funcția setbuffer()  este  identică,  cu  excepția  faptului  că  dimensiunea  memoriei  tampon  este  la
       latitudinea  apelantului,  în  loc  să fie determinată de valoarea implicită BUFSIZ. Funcția setlinebuf()
       este exact echivalentă cu apelul:

           setvbuf(stream, NULL, _IOLBF, 0);

VALOAREA RETURNATĂ

       Funcția setvbuf() returnează 0 în caz de succes. În caz de eșec (mode nu este valid sau cererea nu  poate
       fi onorată), returnează o valoare diferită de zero. În caz de eșec, poate configura errno.

       Celelalte funcții nu returnează nicio valoare.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ setbuf(), setbuffer(), setlinebuf(), setvbuf()                          │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       setbuf()
       setvbuf()
              C11, POSIX.1-2008.

ISTORIC

       setbuf()
       setvbuf()
              C89, POSIX.1-2001.

AVERTISMENTE

       POSIX  notează că valoarea lui errno este nespecificată după un apel la setbuf() și notează, de asemenea,
       că, din moment ce valoarea lui errno nu trebuie să rămână neschimbată după un apel  reușit  la  setbuf(),
       aplicațiile ar trebui să utilizeze în schimb setvbuf() pentru a detecta erorile.

ERORI

       Trebuie  să vă asigurați că spațiul către care indică buf încă mai există în momentul în care stream este
       închis, ceea ce se întâmplă, de asemenea, la terminarea programului. De exemplu, următorul lucru nu  este
       valabil:

       #include <stdio.h>

       int
       main(void)
       {
           char buf[BUFSIZ];

           setbuf(stdout, buf);
           printf("Salutare lume!\n");
           return 0;
       }

CONSULTAȚI ȘI

       stdbuf(1), fclose(3), fflush(3), fopen(3), fread(3), malloc(3), printf(3), puts(3)

TRADUCERE

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

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  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.

Pagini de manual de Linux 6.9.1                   15 iunie 2024                                        setbuf(3)