Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       stdin, stdout, stderr - fluxuri In/Ieș standard

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <stdio.h>

       FIȘIER extern *stdin;
       FIȘIER extern *stdout;
       FIȘIER extern *stderr;

DESCRIERE

       În  condiții  normale,  fiecare  program  UNIX  are trei fluxuri deschise la pornire, unul
       pentru intrare, unul pentru ieșire și unul pentru afișarea mesajelor de diagnosticare  sau
       de eroare.  Aceste fluxuri sunt de obicei atașate la terminalul utilizatorului (a se vedea
       tty(4)), dar se pot referi în schimb la fișiere sau la alte  dispozitive,  în  funcție  de
       ceea  ce  a  ales  să  configureze  procesul părinte.  (A se vedea, de asemenea, secțiunea
       „Redirecționare” din sh(1).)

       Fluxul de intrare este denumit „intrarea standard”; fluxul de ieșire este denumit „ieșirea
       standard”; iar fluxul de eroare este denumit „ieșirea de eroare standard”.  Acești termeni
       sunt prescurtați pentru a forma  simbolurile  utilizate  pentru  a  se  referi  la  aceste
       fișiere, și anume stdin, stdout și stderr.

       Fiecare dintre aceste simboluri este o macrocomandă stdio(3) de tip indicator (pointer) la
       FIȘIER și poate fi utilizată cu funcții precum fprintf(3) sau fread(3).

       Din moment ce FIȘIERELE sunt o învăluire-tampon în jurul descriptorilor de  fișiere  UNIX,
       aceleași  fișiere  de  bază  pot fi accesate și prin utilizarea interfeței de fișiere UNIX
       brute, adică prin funcții precum read(2) și lseek(2).

       La pornirea programului, numărul întreg al descriptorilor de fișiere asociat cu  fluxurile
       stdin,  stdout  și  stderr  este  0,  1  și,  respectiv,  2.   Simbolurile  de preprocesor
       STDIN_FILENO, STDOUT_FILENO și STDERR_FILENO sunt definite cu aceste valori în <unistd.h>.
       (Aplicarea  freopen(3)  la unul dintre aceste fluxuri poate schimba numărul descriptorului
       de fișier asociat fluxului).

       Rețineți că utilizarea mixtă a FIȘIERELOR și  a  descriptorilor  de  fișiere  brute  poate
       produce rezultate neașteptate și, în general, trebuie evitată.  (Pentru masochiștii dintre
       dumneavoastră: POSIX.1, secțiunea 8.2.3, descrie în detaliu modul în  care  ar  trebui  să
       funcționeze această interacțiune).  O regulă generală este că descriptorii de fișiere sunt
       gestionați în nucleu, în timp ce stdio este doar o bibliotecă.  Acest lucru  înseamnă,  de
       exemplu,  că,  după  un  exec(3),  procesul-copil  moștenește toți descriptorii de fișiere
       deschise, dar toate fluxurile vechi devin inaccesibile.

       Deoarece simbolurile stdin, stdout și  stderr  sunt  specificate  ca  fiind  macrocomenzi,
       atribuirea  acestora  nu este portabilă.  Fluxurile standard pot fi făcute să se refere la
       fișiere diferite cu ajutorul funcției de bibliotecă freopen(3), introdusă special pentru a
       face  posibilă  reasignarea  stdin,  stdout  și  stderr.   Fluxurile standard sunt închise
       printr-un apel la exit(3) și prin terminarea normală a programului.

STANDARDE

       Macrocomenzile  stdin,  stdout  și  stderr  sunt  conforme  cu  C99,  iar  acest  standard
       stipulează,  de  asemenea,  că  aceste  trei  fluxuri  trebuie să fie deschise la pornirea
       programului.

NOTE

       Fluxul stderr nu are memorie tampon.  Fluxul stdout este cu memorie tampon de linie atunci
       când  este  îndreptat  către  un terminal.  Liniile parțiale nu vor apărea până când nu se
       apelează fflush(3) sau exit(3), sau până când nu se imprimă o  nouă  linie.   Acest  lucru
       poate  produce  rezultate  neașteptate, în special în cazul ieșirii de depanare.  Modul de
       utilizare a memoriei tampon al fluxurilor standard (sau al oricărui  alt  flux)  poate  fi
       schimbat  cu  ajutorul  apelului  setbuf(3) sau setvbuf(3).  Rețineți că, în cazul în care
       stdin este asociat cu un terminal, este posibil să fie  utilizată,  de  asemenea,  memoria
       tampon  de  intrare  din  controlorul  terminalului,  fără  nicio legătură cu cea a stdio.
       (Într-adevăr, în mod normal, intrarea terminalului  este  în  memoria  tampon  direct  din
       nucleu).   Această  gestionare  a  intrării în nucleu poate fi modificată cu ajutorul unor
       apeluri precum tcsetattr(3); a se vedea, de asemenea, stty(1) și termios(3).

CONSULTAȚI ȘI

       csh(1), sh(1), open(2), fopen(3), stdio(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⟩.