[so] [Tema2][Linux] Problema pipe fisiere mari

Costin Lupu costin.lup at gmail.com
Mon Mar 28 20:55:15 EEST 2016


On Mon, 2016-03-28 at 19:40 +0300, Bogdan Basuc via so wrote:
> Salut,
> 
> 
> Am observat ca daca am un fisier mare (~10M) comanda
> 
> cat big_file | cat > out
> 
> esueaza. Mentionez ca urmatoarele comenzi se executa cu succes:
> 
> cat big_file
> cat big_file > out
> 
> Si de asemenea daca am un fisier intr-o anumita limita comanda
> 
> cat small_file | cat > out
> 
> se executa cu succes. Am inteles ca pipe-urile nu au o problema cu
> limitarea, dar as dori sa stiu care ar putea fi problema.

Nu-mi dau seama exact ce ar putea să fie acolo. Eșuează în ce sens? Se
blochează, se termină cu eroare sau e diferență între big_file și out?

1) În primul rând asigură-te că e chiar o eroare și nu doar o problemă
de prompt. E posibil să nu ți se afișeze promptul, dar comanda să fi
terminat de executat.

2) Asigură-te că închizi capetele nefolosite ale pipe-ului: ambele în
procesul părinte, capătul de read în producător, capătul de write în
consumator.

3) Am căutat în discuțiile din anii trecuți și am dat peste asta [1]. Pe
scurt, pentru comanda

cmd1 | cmd2

ar putea ajuta să pornești cmd2 înainte și cmd1 după.

Revino cu mail să ne zici cum ai rezolvat.

[1]
http://thread.gmane.org/gmane.education.region.romania.operating-systems/4913/focus=4914

Costin




More information about the so mailing list