PIPESZ(1) Comenzi utilizator PIPESZ(1)

pipesz - stabilește sau examinează dimensiunile memoriilor tampon ale conductelor și FIFO

pipesz [opțiuni] [--set dimensiunea] [--] [comanda [argument] ...]

pipesz [opțiuni] --get

Conductele și FIFO-urile (conductele cu nume) mențin o memorie tampon internă utilizată pentru transferul de date între capătul de citire și cel de scriere. În unele cazuri, este posibil ca dimensiunea implicită a acestui tampon intern să nu fie adecvată. Acest program oferă facilități pentru a stabili și examina dimensiunea acestor memorii tampon.

Operația --set stabilește dimensiunile memoriilor tampon ale conductelor. În cazul în care este specificată, aceasta trebuie să fie specificată cu o dimensiune explicită. În caz contrar, aceasta este implicită, iar dimensiunea este citită din /proc/sys/fs/pipe-max-size. Nucleul poate ajusta dimensiunea așa cum este descris în fcntl(2). Pentru a determina dimensiunile reale ale memoriilor tampon definite, utilizați opțiunea --verbose. Dacă nu sunt specificate nici --file, nici --fd, --set acționează la ieșirea standard.

Operația --set permite executarea unei comenzi opționale după stabilirea dimensiunilor memoriei tampon de conductă. Această comandă este executată cu conductele ajustate.

Operația --get produce date într-un format tabelar. Prima coloană este numele conductei, așa cum a fost pasat la pipesz. Descriptorii de fișiere se numesc „fd N”. A doua coloană este dimensiunea, în octeți, a memoriei tampon interne a conductei. A treia coloană este numărul de octeți necitit în prezent din conductă. Coloanele sunt separate de tabulatoare ("\t", ASCII 09h). În cazul în care se specifică --verbose, se emite, de asemenea, un antet descriptiv. Dacă nu sunt specificate nici --file, nici --fd, --get acționează la intrarea standard.

Cu excepția cazului în care este specificată opțiunea --check, pipesz nu iese dacă întâlnește o eroare în timp ce manipulează un fișier sau un descriptor de fișier. Acest lucru permite ca pipesz să fie utilizat în mod generic fără teama de a întrerupe execuția conductelor în cazul în care tipul anumitor fișiere ar fi schimbat ulterior. Pentru o perturbare minimă, opțiunea --quiet împiedică emiterea de avertismente în aceste cazuri.

Nucleul impune limite asupra cantității de spațiu de memorie tampon pentru conducte pe care o pot utiliza procesele neprivilegiate, dar consultați ERORI mai jos. De asemenea, nucleul va refuza să micșoreze o memorie tampon a unei conducte în cazul în care acest lucru ar duce la pierderea datelor stocate în memoria tampon. Pentru detalii suplimentare, consultați pipe(7).

pipesz acceptă specificarea mai multor opțiuni scurte consecutiv, în modul obișnuit getopt(3). Primul argument fără opțiune este interpretat ca fiind comanda. Dacă comanda ar putea începe cu „-”, utilizați „--” pentru a o separa de argumentele pentru pipesz. În scripturile de tip shell, este o bună practică să se utilizeze „--” atunci când este vorba de extinderea parametrilor. pipesz însuși nu citește de la intrarea standard și nu scrie la ieșirea standard decât dacă sunt specificate --get, --help sau --version.

-g, --get

Raportează dimensiunea memoriilor tampon ale conductelor la ieșirea standard și iese. Ca un comportament special, dacă nu sunt specificate nici --file, nici --fd, se examinează intrarea standard. Este o eroare să se specifice această opțiune în combinație cu --set.

-s, --set dimensiunea

Stabilește dimensiunea memoriilor tampon ale conductelor, în octeți. Această opțiune poate fi sufixată cu K, M, G, KiB, MiB sau GiB pentru a indica multiplii de 1024. În acest caz, sunt acceptate valorile fracționare. Sufixele suplimentare sunt acceptate, dar este puțin probabil să fie utile. Dacă această opțiune nu este specificată, se utilizează o valoare implicită, așa cum este descris mai sus. În cazul în care această opțiune este specificată de mai multe ori, se emite un avertisment și se utilizează doar ultima dimensiune specificată. Ca un comportament special, dacă nu sunt specificate nici --file, nici --fd, ieșirea standard este ajustată. Specificarea acestei opțiuni în combinație cu --get constituie o eroare.

-f, --file ruta

Stabilește dimensiunea memoriei tampon a FIFO-ului sau a conductei din ruta, în raport cu directorul de lucru curent. Puteți specifica această opțiune de mai multe ori pentru a afecta fișiere diferite și puteți face acest lucru în combinație cu --fd. În general, această opțiune este utilizată cu FIFO-uri, dar va funcționa și cu conducte anonime, cum ar fi cele găsite în /proc/PID/fd. Modificările aduse dimensiunii memoriei tampon a FIFO-urilor nu sunt păstrate de la o repornire a sistemului la alta.

-n, --fd fd

Stabilește dimensiunea memoriei tampon a conductei sau a FIFO-ului pasată la pipesz ca număr de descriptor de fișier specificat. Puteți specifica această opțiune de mai multe ori pentru a afecta diferiți descriptori de fișiere și puteți face acest lucru în combinație cu --file. Sunt furnizate opțiuni prescurtate pentru cazurile obișnuite de fd 0 (stdin, intrarea standard), fd 1 (stdout, ieșirea standard) și fd 2 (stderr, ieșirea de eroare standard). Acestea ar trebui să fie suficiente în majoritatea cazurilor.

-i, --stdin

Abreviere pentru --fd 0.

-o, --stdout

Abreviere pentru --fd 1.

-e, --stderr

Abreviere pentru --fd 2.

-c, --check

Iese, fără a executa comanda, în caz de eroare în timpul manipulării unui fișier sau a unui descriptor de fișier. Comportamentul implicit în cazul în care acest lucru nu este specificat este de a emite un avertisment la ieșirea de eroare standard și de a continua.

-q, --quiet

Nu diagnostichează erorile care nu sunt fatale la ieșirea de eroare standard. Această opțiune nu afectează ieșirea normală a --get, --verbose, --help sau --version.

-v, --verbose

Dacă este specificată cu --get, pipesz va emite un antet descriptiv deasupra tabelului. În caz contrar, dacă este specificată, pipesz va afișa la ieșirea de eroare standard dimensiunile actuale ale memoriilor tampon stabilite de nucleu.

-h, --help

Afișează acest mesaj de ajutor și iese.

-V, --version

Afișează versiunea și iese.

pipesz dd if=fișier bs=1M | ...

Rulează dd(1) cu o conductă de ieșire standard extinsă, permițându-i să evite schimbările de context atunci când se face o legătură între blocuri mari.

pipesz -s1M -cf /run/serviciul-meu.fifo

Stabilește dimensiunea memoriei tampon a conductei unui serviciu FIFO la 1.048.576 octeți. În cazul în care dimensiunea memoriei tampon nu a putut fi stabilită, pipesz iese cu o eroare.

echo hello | pipesz -g

Afișează dimensiunea conductei utilizate de shell pentru a transmite datele de intrare către pipesz. Deoarece pipesz nu citește intrarea standard, este posibil să raporteze, de asemenea, 6 octeți necitiți în conductă, în funcție de timpii relativi.

find /proc/PID/fd -exec pipesz -gqf '{}' ';'

Afișează dimensiunea și numărul de octeți necitiți ai tuturor conductelor utilizate de PID. În cazul în care unele conducte sunt în mod obișnuit pline, pipesz ar putea fi capabilă să atenueze un blocaj de procesare.

Linux suportă ajustarea dimensiunii memoriilor tampon ale conductelor începând cu nucleul 2.6.35. Această versiune a introdus, de asemenea, /proc/sys/fs/pipe-max-size.

Acest program utilizează fcntl(2) F_GETPIPE_SZ/F_SETPIPE_SZ pentru a obține și a stabili dimensiunile memoriilor tampon ale conductelor.

Acest program utilizează ioctl(2) FIONREAD pentru a raporta cantitatea de date necitite din conducte. Dacă dintr-un motiv oarecare acest lucru eșuează, cantitatea de date necitite este raportată ca fiind 0.

Înainte de Linux 4.9, unele erori afectează modul în care sunt aplicate anumite limite de resurse atunci când se stabilesc dimensiunile memoriilor tampon pentru pipe. Consultați pipe(7) pentru detalii.

Nathan Sharp <nwsharp@live.com>

pipe(7)

Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor https://github.com/util-linux/util-linux/issues.

Comanda pipesz face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.

2025-03-29 util-linux 2.41