.\" -*- coding: UTF-8 -*- '\" t .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH termios 3 "17 mai 2025" "Pagini de manual de Linux 6.15" .SH NUME obține și definește atributele terminalului, controlul liniei, obține și definește rata de transmisie în baud .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP \fB#include \fP .P \fBint tcgetattr(int \fP\fIfd\fP\fB, struct termios *\fP\fItermios_p\fP\fB);\fP \fBint tcsetattr(int \fP\fIfd\fP\fB, int \fP\fIoptional_actions\fP\fB,\fP \fB const struct termios *\fP\fItermios_p\fP\fB);\fP .P \fBint tcsendbreak(int \fP\fIfd\fP\fB, int \fP\fIduration\fP\fB);\fP \fBint tcdrain(int \fP\fIfd\fP\fB);\fP \fBint tcflush(int \fP\fIfd\fP\fB, int \fP\fIqueue_selector\fP\fB);\fP \fBint tcflow(int \fP\fIfd\fP\fB, int \fP\fIaction\fP\fB);\fP .P \fBvoid cfmakeraw(struct termios *\fP\fItermios_p\fP\fB);\fP .P \fBspeed_t cfgetispeed(const struct termios *\fP\fItermios_p\fP\fB);\fP \fBspeed_t cfgetospeed(const struct termios *\fP\fItermios_p\fP\fB);\fP .P \fBint cfsetispeed(struct termios *\fP\fItermios_p\fP\fB, speed_t \fP\fIspeed\fP\fB);\fP \fBint cfsetospeed(struct termios *\fP\fItermios_p\fP\fB, speed_t \fP\fIspeed\fP\fB);\fP \fBint cfsetspeed(struct termios *\fP\fItermios_p\fP\fB, speed_t \fP\fIspeed\fP\fB);\fP .fi .P .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .P \fBcfsetspeed\fP(), \fBcfmakeraw\fP(): .nf Începând cu glibc 2.19: _DEFAULT_SOURCE glibc 2.19 și versiunile anterioare: _BSD_SOURCE .fi .SH DESCRIERE Funcțiile termios descriu o interfață generală de terminal care este furnizată pentru a controla porturile de comunicații asincrone. .SS "Structura termios" Multe dintre funcțiile descrise aici au un argument \fItermios_p\fP care este un indicator către o structură \fItermios\fP. Această structură conține cel puțin următorii membri: .P .in +4n .EX tcflag_t c_iflag; /* moduri de intrare */ tcflag_t c_oflag; /* moduri de ieșire */ tcflag_t c_cflag; /* moduri de control */ tcflag_t c_lflag; /* moduri locale */ cc_t c_cc[NCCS]; /* caractere speciale */ .EE .in .P Valorile care pot fi atribuite acestor câmpuri sunt descrise mai jos. În cazul primelor patru câmpuri de tip mască de biți, definițiile unora dintre fanioanele asociate care pot fi activate sunt expuse numai dacă este definită o macroinstrucțiune specifică de testare a caracteristicilor (a se vedea \fBfeature_test_macros\fP(7)), după cum se menționează în paranteze („[]”). .P În descrierile de mai jos, „nu există în POSIX” înseamnă că valoarea nu este specificată în POSIX.1\-2001, iar „XSI” înseamnă că valoarea este specificată în POSIX.1\-2001 ca parte a extensiei XSI. .P Constantele fanionului \fIc_iflag\fP: .TP \fBIGNBRK\fP Ignoră condiția BREAK de la intrare. .TP \fBBRKINT\fP Dacă \fBIGNBRK\fP este activat, un BREAK este ignorat. Dacă nu este activat, dar \fBBRKINT\fP este activat, atunci un BREAK determină golirea cozilor de intrare și ieșire și, dacă terminalul este terminalul de control al unui grup de procese în prim plan, va determina trimiterea unui semnal \fBSIGINT\fP către acest grup de procese în prim plan. Atunci când nici \fBIGNBRK\fP, nici \fBBRKINT\fP nu sunt activate, un BREAK este citit ca un octet nul (\fB\[aq]\[rs]0\[aq]\fP), cu excepția cazului în care \fBPARMRK\fP este activat, caz în care este citit ca secvența \[rs]377 \[rs]0 \[rs]0. .TP \fBIGNPAR\fP Ignoră erorile de încadrare și de paritate. .TP \fBPARMRK\fP Dacă acest bit este activat, octeții de intrare cu erori de paritate sau de încadrare sunt marcați atunci când sunt transferați către program. Acest bit este semnificativ numai atunci când \fBINPCK\fP este activat și \fBIGNPAR\fP nu este activat. Modul în care sunt marcați octeții eronați este cu doi octeți precedenți, \[rs]377 și \[rs]0. Astfel, programul citește de fapt trei octeți pentru un octet eronat primit de la terminal. Dacă un octet valid are valoarea \[rs]377, iar \fBISTRIP\fP (vezi mai jos) nu este activat, programul îl poate confunda cu prefixul care marchează o eroare de paritate. Prin urmare, un octet valid \[rs]377 este transmis programului ca doi octeți, \[rs]377 \[rs]377, în acest caz. .IP Dacă nu este activat nici \fBIGNPAR\fP, nici \fBPARMRK\fP, citește un caracter cu o eroare de paritate sau o eroare de încadrare ca \[rs]0. .TP \fBINPCK\fP Activează verificarea parității de intrare. .TP \fBISTRIP\fP Îndepărtează al optulea bit. .TP \fBINLCR\fP Traduce NL în CR la intrare. .TP \fBIGNCR\fP Ignoră returul de cărucior la intrare. .TP \fBICRNL\fP Transformă returul de cărucior în linie nouă la intrare (cu excepția cazului în care \fBIGNCR\fP este activat). .TP \fBIUCLC\fP (nu există în POSIX) Transformă caracterele majuscule în caractere minuscule la intrare. .TP \fBIXON\fP Activează controlul fluxului XON/XOFF de la ieșire. .TP \fBIXANY\fP (XSI) Tastarea oricărui caracter va reporni ieșirea oprită. (Valoarea implicită este de a permite doar caracterului START să repornească ieșirea.) .TP \fBIXOFF\fP Activează controlul fluxului XON/XOFF de la intrare. .TP \fBIMAXBEL\fP (nu există în POSIX) Sună un clopoțel atunci când coada de intrare este plină. Linux nu implementează acest bit și acționează ca și cum ar fi întotdeauna activat. .TP \fBIUTF8\fP (începând cu Linux 2.6.4) (nu există în POSIX) Intrarea este UTF8; acest lucru permite ca ștergerea caracterelor să fie efectuată corect în modul procesat. .P Constantele fanionului \fIc_oflag\fP: .TP \fBOPOST\fP Activează procesarea de la ieșire definită de implementare. .TP \fBOLCUC\fP (nu există în POSIX) Transformă caracterele în minuscule în majuscule la ieșire. .TP \fBONLCR\fP (XSI) Traduce NL în CR\-NL la ieșire. .TP \fBOCRNL\fP Traduce CR la NL la ieșire. .TP \fBONOCR\fP Nu se emite CR la coloana 0. .TP \fBONLRET\fP Se presupune că caracterul NL îndeplinește funcția de retur de cărucior; ideea nucleului cu privire la coloana curentă este că aceasta este stabilită la 0 atât după NL, cât și după CR. .TP \fBOFILL\fP Trimite caractere de umplere pentru o întârziere, în loc să folosească o întârziere temporizată. .TP \fBOFDEL\fP Caracterul de umplere este ASCII DEL (0177). Dacă nu este definit, caracterul de umplere este ASCII NUL (\[aq]\[rs]0\[aq]). (Nu este implementat pe Linux.) .TP \fBNLDLY\fP Mască de întârziere a liniei noi. Valorile sunt \fBNL0\fP și \fBNL1\fP. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP sau \fB_XOPEN_SOURCE\fP] .TP \fBCRDLY\fP Mască de întârziere a returului de cărucior. Valorile sunt \fBCR0\fP, \fBCR1\fP, \fBCR2\fP sau \fBCR3\fP. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP sau \fB_XOPEN_SOURCE\fP] .TP \fBTABDLY\fP Mască de întârziere a tabulatorului orizontal. Valorile sunt \fBTAB0\fP, \fBTAB1\fP, \fBTAB2\fP, \fBTAB3\fP (sau \fBXTABS\fP, dar consultați secțiunea \fBERORI\fP). O valoare de TAB3, adică XTABS, extinde tabulatoarele la spații (cu opriri de tabulare la fiecare opt coloane). [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP sau \fB_XOPEN_SOURCE\fP] .TP \fBBSDLY\fP Mască de întârziere a backspace\-urilor. Valorile sunt \fBBS0\fP sau \fBBS1\fP. (Nu a fost niciodată implementat.) [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP sau \fB_XOPEN_SOURCE\fP] .TP \fBVTDLY\fP Mască de întârziere a tabulatorului vertical. Valorile sunt \fBVT0\fP sau \fBVT1\fP. .TP \fBFFDLY\fP Mască de întârziere a avansului de pagină (saltul de pagină). Valorile sunt \fBFF0\fP sau \fBFF1\fP [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP sau \fB_XOPEN_SOURCE\fP] .P Constantele fanionului \fIc_cflag\fP: .TP \fBCBAUD\fP (nu există în POSIX) Masca vitezei în baud (4+1 biți). [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .TP \fBCBAUDEX\fP (nu există în POSIX) Mască suplimentară de viteză baud (1 bit), inclusă în \fBCBAUD\fP. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .IP (POSIX spune că viteza de baud este stocată în structura \fItermios\fP fără a specifica unde anume, și oferă \fBcfgetispeed\fP() și \fBcfsetispeed\fP() pentru a ajunge la ea. Unele sisteme utilizează biții selectați de \fBCBAUD\fP în \fIc_cflag\fP, alte sisteme utilizează câmpuri separate, de exemplu, \fIsg_ispeed\fP și \fIsg_ospeed\fP). .TP \fBCSIZE\fP Mască pentru dimensiunea caracterelor. Valorile sunt \fBCS5\fP, \fBCS6\fP, \fBCS7\fP sau \fBCS8\fP. .TP \fBCSTOPB\fP Stabilește doi biți de stop, în loc de unul. .TP \fBCREAD\fP Activează receptorul. .TP \fBPARENB\fP Activează generarea parității la ieșire și verificarea parității la intrare. .TP \fBPARODD\fP Dacă este activată, atunci paritatea pentru intrare și ieșire este impară; în caz contrar, este utilizată paritatea pară. .TP \fBHUPCL\fP Coboară liniile de control ale modemului după ce ultimul proces închide dispozitivul (hang up). .TP \fBCLOCAL\fP Ignoră liniile de control ale modemului. .TP \fBLOBLK\fP (nu există în POSIX) Blochează ieșirea de la un strat de shell care nu este curent. Pentru utilizare de către \fBshl\fP (straturi shell). (Nu este implementat în Linux.) .TP \fBCIBAUD\fP (nu există în POSIX) Mască pentru vitezele de intrare. Valorile pentru biții \fBCIBAUD\fP sunt aceleași cu valorile pentru biții \fBCBAUD\fP, biții \fBIBSHIFT\fP deplasați la stânga. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] (Neimplementat în glibc, acceptat pe Linux prin ioctls \fBTCGET\fP* și \fBTCSET\fP*; a se vedea \fBioctl_tty\fP(2)) .TP \fBCMSPAR\fP (nu există în POSIX) Utilizarea parității „stick” (marcaj/spațiu) (acceptată pe anumite dispozitive seriale): dacă \fBPARODD\fP este activat, bitul de paritate este întotdeauna 1; dacă \fBPARODD\fP nu este activat, atunci bitul de paritate este întotdeauna 0. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .TP \fBCRTSCTS\fP (nu există în POSIX) Activează controlul fluxului RTS/CTS (hardware). [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .P Constantele fanionului \fIc_lflag\fP: .TP \fBISIG\fP Când se primește oricare dintre caracterele INTR, QUIT, SUSP sau DSUSP, generează semnalul corespunzător. .TP \fBICANON\fP Activează modul canonic (descris mai jos). .TP \fBXCASE\fP .\" glibc is probably now wrong to allow .\" Define .\" .B _XOPEN_SOURCE .\" to expose .\" .BR XCASE . (nu există în POSIX; nu este acceptat în Linux) Dacă \fBICANON\fP este de asemenea activat, terminalul este numai cu majuscule. Intrarea este convertită în minuscule, cu excepția caracterelor precedate de \[rs]. La ieșire, caracterele majuscule sunt precedate de \[rs], iar caracterele minuscule sunt convertite în majuscule. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP sau \fB_XOPEN_SOURCE\fP] .TP \fBECHO\fP Afișează caracterele de intrare. .TP \fBECHOE\fP Dacă \fBICANON\fP este de asemenea activat, caracterul ERASE șterge caracterul de intrare precedent, iar WERASE șterge cuvântul precedent. .TP \fBECHOK\fP Dacă \fBICANON\fP este de asemenea activat, caracterul KILL șterge linia curentă. .TP \fBECHONL\fP Dacă \fBICANON\fP este, de asemenea, activat, redă caracterul NL chiar dacă ECHO nu este activat. .TP \fBECHOCTL\fP (nu există în POSIX) Dacă \fBECHO\fP este de asemenea activat, caracterele speciale ale terminalului, altele decât TAB, NL, START și STOP, sunt redate ca \fB\[ha]X\fP, unde X este caracterul cu codul ASCII 0x40 mai mare decât caracterul special. De exemplu, caracterul 0x08 (BS) este redat ca \fB\[ha]H\fP. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .TP \fBECHOPRT\fP (nu există în POSIX) Dacă \fBICANON\fP și \fBECHO\fP sunt de asemenea activate, caracterele sunt imprimate în timp ce sunt șterse. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .TP \fBECHOKE\fP (nu există în POSIX) Dacă \fBICANON\fP este de asemenea activat, KILL este reluat prin ștergerea fiecărui caracter de pe linie, conform specificațiilor \fBECHOE\fP și \fBECHOPRT\fP. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .TP \fBDEFECHO\fP (nu există în POSIX) Echo numai atunci când un proces citește. (Nu este implementat în Linux.) .TP \fBFLUSHO\fP (nu există în POSIX; nu este acceptat în Linux) Ieșirea este eliminată. Acest fanion este activat prin tastarea caracterului DISCARD. [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .TP \fBNOFLSH\fP .\" Stevens lets SUSP only flush the input queue Dezactivează golirea cozilor de intrare și ieșire la generarea semnalelor pentru caracterele INT, QUIT și SUSP. .TP \fBTOSTOP\fP Trimite semnalul \fBSIGTTOU\fP către grupul de procese al unui proces din fundal care încearcă să scrie la terminalul său de control. .TP \fBPENDIN\fP (nu există în POSIX; nu este acceptat în Linux) Toate caracterele din coada de intrare sunt reimprimate atunci când este citit următorul caracter. (\fBbash\fP(1) gestionează în acest fel „typeahead”). [necesită \fB_BSD_SOURCE\fP sau \fB_SVID_SOURCE\fP] .TP \fBIEXTEN\fP Activează procesarea de intrare definită de implementare. Acest fanion, precum și \fBICANON\fP trebuie să fie activate pentru ca caracterele speciale EOL2, LNEXT, REPRINT, WERASE să fie interpretate și pentru ca fanionul \fBIUCLC\fP să fie eficient. .P Matricea \fIc_cc\fP definește caracterele speciale ale terminalului. Indicii simbolici (valorile inițiale) și semnificația lor sunt: .TP \fBVDISCARD\fP (nu există în POSIX; nu este acceptat în Linux; 017, SI, Ctrl\-O) Comută: începe/încetează să elimine ieșirea în așteptare. Recunoscut atunci când \fBIEXTEN\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVDSUSP\fP (nu există în POSIX; nu este acceptat în Linux; 031, EM, Ctrl\-Y) Caracter de suspendare întârziată (DSUSP): trimite semnalul \fBSIGTSTP\fP atunci când caracterul este citit de programul utilizatorului. Recunoscut atunci când \fBIEXTEN\fP și \fBISIG\fP sunt activate, iar sistemul utilizează funcția de control al lucrărilor, iar apoi nu este transmis ca intrare. .TP \fBVEOF\fP (004, EOT, Ctrl\-D) Caracter de sfârșit de fișier (EOF). Mai exact: acest caracter face ca memoria tampon tty în așteptare să fie trimisă programului utilizator în așteptare, fără a aștepta sfârșitul de linie. Dacă este primul caracter al liniei, \fBread\fP(2) din programul utilizator returnează 0, ceea ce înseamnă sfârșit de fișier. Recunoscut atunci când \fBICANON\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVEOL\fP (0, NUL) Caracter suplimentar de sfârșit de linie (EOL). Recunoscut atunci când \fBICANON\fP este activat. .TP \fBVEOL2\fP (nu există în POSIX; 0, NUL) Încă un caracter de sfârșit de linie (EOL2). Recunoscut atunci când \fBICANON\fP este activat. .TP \fBVERASE\fP (0177, DEL, rubout, sau 010, BS, Ctrl\-H, sau de asemenea #) Sterge caracterul (ERASE). Acesta șterge caracterul anterior care nu a fost încă șters, dar nu șterge după EOF sau începutul de linie. Recunoscut atunci când \fBICANON\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVINTR\fP (003, ETX, Ctrl\-C, sau de asemenea 0177, DEL, rubout) Caracter de întrerupere (INTR). Trimite un semnal \fBSIGINT\fP. Recunoscut atunci când \fBISIG\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVKILL\fP (025, NAK, Ctrl\-U sau Ctrl\-X, sau, de asemenea, @) Caracter de anulare (KILL). Acesta șterge intrarea de la ultimul EOF sau început de linie. Recunoscut atunci când \fBICANON\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVLNEXT\fP (nu există în POSIX; 026, SYN, Ctrl\-V) Literal next (LNEXT). Introduce între ghilimele următorul caracter de intrare, privându\-l de o posibilă semnificație specială. Recunoscut atunci când \fBIEXTEN\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVMIN\fP Numărul minim de caractere pentru citirea noncanonică (MIN). .TP \fBVQUIT\fP (034, FS, Ctrl\-\[rs]) Caracter de ieșire (QUIT). Trimite semnalul \fBSIGQUIT\fP. Recunoscut atunci când \fBISIG\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVREPRINT\fP (nu există în POSIX; 022, DC2, Ctrl\-R) Reimprimă caracterele necitite (REPRINT). Recunoscut atunci când \fBICANON\fP și \fBIEXTEN\fP sunt activate, iar apoi nu este transmis ca intrare. .TP \fBVSTART\fP (021, DC1, Ctrl\-Q) Caracter de pornire (START). Repornește ieșirea oprită de caracterul Stop. Recunoscut atunci când \fBIXON\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVSTATUS\fP (nu există în POSIX; nu este acceptat în Linux; cerere de stare: 024, DC4, Ctrl\-T). Caracter de stare (STATUS). Afișează informații de stare la terminal, inclusiv starea procesului din prim\-plan și cantitatea de timp CPU pe care a consumat\-o. De asemenea, trimite un semnal \fBSIGINFO\fP (nu este acceptat în Linux) către grupul de procese din prim\-plan. .TP \fBVSTOP\fP (023, DC3, Ctrl\-S) Caracter de oprire (STOP). Oprește ieșirea până la tastarea caracterului Start. Recunoscut atunci când \fBIXON\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVSUSP\fP (032, SUB, Ctrl\-Z) Caracter de suspendare (SUSP). Trimite semnalul \fBSIGTSTP\fP. Recunoscut atunci când \fBISIG\fP este activat, iar apoi nu este transmis ca intrare. .TP \fBVSWTCH\fP (nu există în POSIX; nu este acceptat în Linux; 0, NUL) Caracter de comutare (SWTCH). Utilizat în System V pentru a schimba shell\-urile în \fIshell layers\fP, un predecesor al controlului lucrărilor shell. .TP \fBVTIME\fP Timp de așteptare în zeci de secunde pentru citirea noncanonică (TIME). .TP \fBVWERASE\fP (nu există în POSIX; 027, ETB, Ctrl\-W) Șterge cuvintele (WERASE). Recunoscut atunci când \fBICANON\fP și \fBIEXTEN\fP sunt activate, iar apoi nu este transmis ca intrare. .P Un caracter special de terminal individual poate fi dezactivat prin definirea valorii elementului \fIc_cc\fP corespunzător la \fB_POSIX_VDISABLE\fP. .P Valorile sub\-indicilor simbolici de mai sus sunt toate diferite, cu excepția faptului că \fBVTIME\fP, \fBVMIN\fP pot avea aceeași valoare ca \fBVEOL\fP, respectiv \fBVEOF\fP. În modul noncanonic, semnificația caracterului special este înlocuită cu semnificația timpului de așteptare. Pentru o explicație a \fBVMIN\fP și \fBVTIME\fP, consultați descrierea modului necanonic de mai jos. .SS "Preluarea și modificarea configurărilor terminalului" \fBtcgetattr\fP() obține parametrii asociați obiectului la care se face referire prin \fIfd\fP și îi stochează în structura \fItermios\fP la care se face referire prin \fItermios_p\fP. Această funcție poate fi invocată dintr\-un proces din fundal; cu toate acestea, atributele terminalului pot fi modificate ulterior de un proces din prim\-plan. .P \fBtcsetattr\fP() stabilește parametrii asociați terminalului (cu excepția cazului în care este necesar un suport din partea hardware\-ului de bază care nu este disponibil) din structura \fItermios\fP la care se face referire prin \fItermios_p\fP. \fIoptional_actions\fP specifică momentul în care modificările intră în vigoare: .TP \fBTCSANOW\fP schimbarea are loc imediat. .TP \fBTCSADRAIN\fP modificarea are loc după ce toate ieșirile scrise în \fIfd\fP au fost transmise. Această opțiune trebuie utilizată atunci când se modifică parametrii care afectează ieșirea. .TP \fBTCSAFLUSH\fP modificarea are loc după ce toate ieșirile scrise la obiectul la care se referă \fIfd\fP au fost transmise, iar toate intrările care au fost primite, dar nu citite, vor fi eliminate înainte de efectuarea modificării. .SS "Modul canonic și necanonic" Activarea fanionului canonic \fBICANON\fP în \fIc_lflag\fP determină dacă terminalul funcționează în mod canonic (\fBICANON\fP activat) sau în mod necanonic (\fBICANON\fP dezactivat). În mod implicit, \fBICANON\fP este activat. .P În modul canonic: .IP \[bu] 3 Intrarea este disponibilă linie cu linie. O linie de intrare este disponibilă atunci când este tastat unul dintre delimitatorii de linie (NL, EOL, EOL2; sau EOF la începutul liniei). Cu excepția cazului EOF, delimitatorul de linie este inclus în tamponul returnat de \fBread\fP(2). .IP \[bu] Editarea liniilor este activată (ERASE, KILL; și dacă fanionul \fBIEXTEN\fP este activat: WERASE, REPRINT, LNEXT). Un apel \fBread\fP(2) returnează cel mult o linie de intrare; dacă apelul \fBread\fP(2) a solicitat mai puțini octeți decât sunt disponibili în linia curentă de intrare, atunci sunt citiți doar atâția octeți câți au fost solicitați, iar caracterele rămase vor fi disponibile pentru un viitor apel \fBread\fP(2). .IP \[bu] Lungimea maximă a liniei este de 4096 de caractere (inclusiv caracterul de sfârșit de linie nouă); liniile mai lungi de 4096 de caractere sunt trunchiate. După 4095 de caractere, procesarea intrării (de exemplu, procesarea \fBISIG\fP și \fBECHO*\fP) continuă, dar orice date de intrare după 4095 de caractere până la (dar fără a include) orice linie nouă de terminare sunt eliminate. Acest lucru asigură faptul că terminalul poate primi întotdeauna mai multe date de intrare până când cel puțin o linie poate fi citită. .P În modul necanonic, intrarea este disponibilă imediat (fără ca utilizatorul să fie nevoit să tasteze un caracter de delimitare a liniei), nu se efectuează nicio prelucrare a intrării, iar editarea liniei este dezactivată. Tamponul de citire va accepta numai 4095 de caractere; acest lucru asigură spațiul necesar pentru un caracter de linie nouă în cazul în care modul de intrare este comutat la modul canonic. Valorile MIN (\fIc_cc[VMIN]\fP) și TIME (\fIc_cc[VTIME]\fP) determină circumstanțele în care se finalizează un \fBread\fP(2); există patru cazuri distincte: .TP MIN == 0, TIME == 0 (sondarea citirii) Dacă datele sunt disponibile, \fBread\fP(2) returnează imediat, cu cel mai mic dintre numărul de octeți disponibili sau numărul de octeți solicitați. Dacă nu există date disponibile, \fBread\fP(2) returnează 0. .TP MIN > 0, TIME == 0 (blocarea citirii) \fBread\fP(2) blochează până când sunt disponibili MIN octeți și returnează până la numărul de octeți solicitat. .TP MIN == 0, TIME > 0 (citire cu timp limită) TIME specifică limita pentru un temporizator în zecimi de secundă. Temporizatorul este pornit atunci când este apelat \fBread\fP(2). \fBread\fP(2) returnează fie atunci când cel puțin un octet de date este disponibil, fie atunci când temporizatorul expiră. În cazul în care temporizatorul expiră fără ca vreo intrare să devină disponibilă, \fBread\fP(2) returnează 0. În cazul în care datele sunt deja disponibile în momentul apelului la \fBread\fP(2), apelul se comportă ca și cum datele ar fi fost primite imediat după apel. .TP MIN > 0, TIME > 0 (citire cu timp de așteptare între octeți) TIME specifică limita pentru un temporizator în zecimi de secundă. Odată ce un octet inițial de intrare devine disponibil, temporizatorul este repornit după primirea fiecărui alt octet. \fBread\fP(2) revine atunci când este îndeplinită oricare dintre următoarele condiții: .RS .IP \[bu] 3 Au fost primiți MIN octeți. .IP \[bu] Timpul de așteptare între octeți expiră. .IP \[bu] .\" e.g., Solaris Numărul de octeți solicitat de \fBread\fP(2) a fost primit. (POSIX nu specifică această condiție de terminare, iar pe unele alte implementări \fBread\fP(2) nu returnează în acest caz). .RE .IP Deoarece temporizatorul este pornit numai după ce octetul inițial devine disponibil, cel puțin un octet va fi citit. Dacă datele sunt deja disponibile la momentul apelului la \fBread\fP(2), apelul se comportă ca și cum datele ar fi fost primite imediat după apel. .P .\" POSIX.1-2008 XBD 11.1.7 POSIX nu specifică dacă valoarea faniomului de stare a fișierului \fBO_NONBLOCK\fP are prioritate față de valorile MIN și TIME. Dacă \fBO_NONBLOCK\fP este activat, un \fBread\fP(2) în modul necanonic poate reveni imediat, indiferent de valoarea MIN sau TIME. În plus, dacă nu există date disponibile, POSIX permite ca un \fBread\fP(2) în mod necanonic să returneze fie 0, fie \-1 cu \fIerrno\fP fixată la \fBEAGAIN\fP. .SS "Modul brut" \fBcfmakeraw\fP() configurează terminalul într\-un mod asemănător modului „raw” (brut) al vechiului controlor de terminal Versiunea 7: intrarea este disponibilă caracter cu caracter, ecoul este dezactivat și toate procesările speciale ale caracterelor de intrare și ieșire ale terminalului sunt dezactivate. Atributele terminalului sunt configurate după cum urmează: .P .in +4n .EX termios_p\->c_iflag &= \[ti](IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); termios_p\->c_oflag &= \[ti]OPOST; termios_p\->c_lflag &= \[ti](ECHO | ECHONL | ICANON | ISIG | IEXTEN); termios_p\->c_cflag &= \[ti](CSIZE | PARENB); termios_p\->c_cflag |= CS8; .EE .in .\" .SS "Controlul liniei" \fBtcsendbreak\fP() transmite un flux continuu de biți cu valoare zero pentru o anumită durată, dacă terminalul utilizează transmiterea asincronă de date seriale. Dacă \fIduration\fP este zero, aceasta transmite biți cu valoare zero timp de cel puțin 0,25 secunde și nu mai mult de 0,5 secunde. Dacă \fIduration\fP nu este zero, aceasta transmite biți cu valoare zero pentru o anumită perioadă de timp definită de implementare. .P Dacă terminalul nu utilizează transmiterea asincronă de date seriale, \fBtcsendbreak\fP() revine fără a întreprinde nicio acțiune. .P \fBtcdrain\fP() așteaptă până când toate ieșirile scrise în obiectul la care face referire \fIfd\fP au fost transmise. .P \fBtcflush\fP() elimină datele scrise în obiectul la care se referă \fIfd\fP, dar care nu au fost transmise, sau datele primite, dar care nu au fost citite, în funcție de valoarea lui \fIqueue_selector\fP: .TP \fBTCIFLUSH\fP șterge datele primite, dar necitite. .TP \fBTCOFLUSH\fP șterge datele scrise, dar care nu au fost transmise. .TP \fBTCIOFLUSH\fP șterge atât datele primite, dar care nu au fost citite, cât și datele scrise, dar care nu au fost transmise. .P \fBtcflow\fP() suspendă transmiterea sau recepția de date pe obiectul la care se referă \fIfd\fP, în funcție de valoarea lui \fIaction\fP: .TP \fBTCOOFF\fP suspendă ieșirea. .TP \fBTCOON\fP repornește ieșirea suspendată. .TP \fBTCIOFF\fP transmite un caracter STOP, care oprește dispozitivul de terminal de la transmiterea de date către sistem. .TP \fBTCION\fP transmite un caracter START, care pornește dispozitivul de terminal să transmită date către sistem. .P În mod implicit, la deschiderea unui fișier terminal, nici intrarea, nici ieșirea acestuia nu sunt suspendate. .SS "Viteza liniei" Funcțiile privind viteza baud sunt furnizate pentru obținerea și definirea valorilor vitezelor baud de intrare și ieșire în structura \fItermios\fP. Noile valori nu intră în vigoare până când \fBtcsetattr\fP() nu este apelat cu succes. .P Stabilirea vitezei la \fBB0\fP instruiește modemul să „închidă”. Viteza reală de biți corespunzătoare lui \fBB38400\fP poate fi modificată cu \fBsetserial\fP(8). .P Vitezele în baud de intrare și de ieșire sunt stocate în structura \fItermios\fP. .P \fBcfgetospeed\fP() returnează viteza baud de ieșire stocată în structura \fItermios\fP indicată de \fItermios_p\fP. .P \fBcfsetospeed\fP() stabilește rata de baud de ieșire stocată în structura \fItermios\fP indicată de \fItermios_p\fP la \fIspeed\fP, care trebuie să fie una dintre aceste constante: .RS .TP \fBB0\fP .TQ \fBB50\fP .TQ \fBB75\fP .TQ \fBB110\fP .TQ \fBB134\fP .TQ \fBB150\fP .TQ \fBB200\fP .TQ \fBB300\fP .TQ \fBB600\fP .TQ \fBB1200\fP .TQ \fBB1800\fP .TQ \fBB2400\fP .TQ \fBB4800\fP .TQ \fBB9600\fP .TQ \fBB19200\fP .TQ \fBB38400\fP .TQ \fBB57600\fP .TQ \fBB115200\fP .TQ \fBB230400\fP .TQ \fBB460800\fP .TQ \fBB500000\fP .TQ \fBB576000\fP .TQ \fBB921600\fP .TQ \fBB1000000\fP .TQ \fBB1152000\fP .TQ \fBB1500000\fP .TQ \fBB2000000\fP .RE .P Aceste constante sunt acceptate suplimentar pe arhitectura SPARC: .RS .TP \fBB76800\fP .TQ \fBB153600\fP .TQ \fBB307200\fP .TQ \fBB614400\fP .RE .P Aceste constante sunt acceptate suplimentar pe arhitecturile non\-SPARC: .RS .TP \fBB2500000\fP .TQ \fBB3000000\fP .TQ \fBB3500000\fP .TQ \fBB4000000\fP .RE .P Datorită diferențelor dintre arhitecturi, aplicațiile portabile trebuie să verifice dacă o anumită constantă \fBB\fP\fInnn\fP este definită înainte de a o utiliza. .P Viteza de baud zero, \fBB0\fP, este utilizată pentru a încheia conexiunea. Dacă \fBB0\fP este specificat, liniile de control ale modemului nu vor mai fi asertate. În mod normal, acest lucru va deconecta linia. \fBCBAUDEX\fP este o mască pentru vitezele dincolo de cele definite în POSIX.1 (57600 și peste). Astfel, \fBB57600\fP & \fBCBAUDEX\fP este diferită de zero. .P Stabilirea vitezei de baud la o altă valoare decât cele definite de constantele \fBB\fP\fInnn\fP este posibilă prin ioctl\-ul \fBTCSETS2\fP; consultați \fBioctl_tty\fP(2). .P \fBcfgetispeed\fP() returnează viteza baud de intrare stocată în structura \fItermios\fP. .P \fBcfsetispeed\fP() stabilește viteza de baud de intrare stocată în structura \fItermios\fP la \fIspeed\fP, care trebuie specificată ca una dintre constantele \fBB\fP\fInnn\fP enumerate mai sus pentru \fBcfsetospeed\fP(). Dacă viteza de baud de intrare este definită la constanta literală \fB0\fP (nu la constanta simbolică \fBB0\fP), viteza de baud de intrare va fi egală cu viteza de baud de ieșire. .P \fBcfsetspeed\fP() este o extensie 4.4BSD. Aceasta preia aceleași argumente ca și \fBcfsetispeed\fP() și stabilește atât viteza de intrare, cât și cea de ieșire. .SH "VALOAREA RETURNATĂ" \fBcfgetispeed\fP() returnează viteza baud de intrare stocată în structura \fItermios\fP. .P \fBcfgetospeed\fP() returnează viteza de baud de ieșire stocată în structura \fItermios\fP. .P Toate celelalte funcții returnează: .TP \fB0\fP în caz de succes. .TP \fB\-1\fP Toate celelalte funcții returnează: în caz de eșec și configurează \fIerrno\fP pentru a indica eroarea. .P Rețineți că \fBtcsetattr\fP() returnează rezultatul cu succes dacă \fI oricare\fP dintre modificările solicitate au putut fi efectuate cu succes. Prin urmare, atunci când se fac mai multe modificări, poate fi necesar să se facă un apel ulterior la \fBtcgetattr\fP() pentru a verifica dacă toate modificările au fost efectuate cu succes. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBtcgetattr\fP(), \fBtcsetattr\fP(), \fBtcdrain\fP(), \fBtcflush\fP(), \fBtcflow\fP(), \fBtcsendbreak\fP(), \fBcfmakeraw\fP(), \fBcfgetispeed\fP(), \fBcfgetospeed\fP(), \fBcfsetispeed\fP(), \fBcfsetospeed\fP(), \fBcfsetspeed\fP() T} Siguranța firelor MT\-Safe .TE .\" FIXME: The markings are different from that in the glibc manual. .\" markings in glibc manual are more detailed: .\" .\" tcsendbreak: MT-Unsafe race:tcattr(filedes)/bsd .\" tcflow: MT-Unsafe race:tcattr(filedes)/bsd .\" .\" glibc manual says /bsd indicate the preceding marker only applies .\" when the underlying kernel is a BSD kernel. .\" So, it is safety in Linux kernel. .SH STANDARDE .TP \fBtcgetattr\fP() .TQ \fBtcsetattr\fP() .TQ \fBtcsendbreak\fP() .TQ \fBtcdrain\fP() .TQ \fBtcflush\fP() .TQ \fBtcflow\fP() .TQ \fBcfgetispeed\fP() .TQ \fBcfgetospeed\fP() .TQ \fBcfsetispeed\fP() .TQ \fBcfsetospeed\fP() POSIX.1\-2008. .TP \fBcfmakeraw\fP() .TQ \fBcfsetspeed\fP() BSD. .SH ISTORIC .TP \fBtcgetattr\fP() .TQ \fBtcsetattr\fP() .TQ \fBtcsendbreak\fP() .TQ \fBtcdrain\fP() .TQ \fBtcflush\fP() .TQ \fBtcflow\fP() .TQ \fBcfgetispeed\fP() .TQ \fBcfgetospeed\fP() .TQ \fBcfsetispeed\fP() .TQ \fBcfsetospeed\fP() POSIX.1\-2001. .TP \fBcfmakeraw\fP() .TQ \fBcfsetspeed\fP() BSD. .SH NOTE UNIX\ V7 și mai multe sisteme ulterioare au o listă de viteze în baud unde după valorile \fBB0\fP până la \fBB9600\fP se găsesc cele două constante \fBEXTA\fP, \fBEXTB\fP („Extern A” și „Extern B”). Multe sisteme extind lista cu viteze în baud mult mai mari. .P .\" libc4 until 4.7.5, glibc for sysv: EINVAL for duration > 0. .\" libc4.7.6, libc5, glibc for unix: duration in ms. .\" glibc for bsd: duration in us .\" glibc for sunos4: ignore duration Efectul unei durate \fIduration\fP diferite de zero cu \fBtcsendbreak\fP() variază. SunOS specifică o pauză de \fIduration\ *\ N\fP secunde, unde \fIN\fP este cel puțin 0,25 și nu mai mult de 0,5. Linux, AIX, DU, Tru64 trimit o pauză de \fIduration\fP milisecunde. FreeBSD și NetBSD și HP\-UX și MacOS ignoră valoarea lui \fIduration\fP. Sub Solaris și UnixWare, \fBtcsendbreak\fP() cu \fIduration\fP diferită de zero se comportă ca \fBtcdrain\fP(). .SH ERORI .\" kernel 77e5bff1640432f28794a00800955e646dcd7455 .\" glibc 573963e32ffac46d9891970ddebde2ac3212c5c0 Pe arhitectura Alpha înainte de Linux 4.16 (și glibc înainte de glibc 2.28), valoarea \fBXTABS\fP a fost diferită de \fBTAB3\fP și a fost ignorată de codul de disciplină al liniei \fBN_TTY\fP a controlorului de terminal ca rezultat (deoarece nu a făcut parte din masca \fBTABDLY\fP). .SH "CONSULTAȚI ȘI" \fBreset\fP(1), \fBsetterm\fP(1), \fBstty\fP(1), \fBtput\fP(1), \fBtset\fP(1), \fBtty\fP(1), \fBioctl_console\fP(2), \fBioctl_tty\fP(2), \fBcc_t\fP(3type), \fBspeed_t\fP(3type), \fBtcflag_t\fP(3type), \fBsetserial\fP(8) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .