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 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.03                  29 decembrie 2022                                       stdin(3)