Ronald Granados wrote:
I am piping the tethereal output (Packet Details) to my app. I have some
memory problems with the ethereal because everytime that I read the pipe
(readfile) the proccess grow, because of this, the proccess crash, when
I make the call I use the -l option that flush the output but this
doesn't seem to work.
The "-l" option just causes the output to be (approximately)
line-buffered, so that each line (or, rather, each packet; that was
easier to implement, and is good enough for applications reading a pipe
from Tethereal, as well as being more efficient) is written to the pipe
separately, so an application reading from the pipe sees packets as they
arrive.
It doesn't affect the behavior of Tethereal in any other way. In
particular...
I don't understand why the program keep growing and crash.
...it doesn't affect the fact that Tethereal, like Ethereal, has
stateful dissectors, that allocate state information about packets for
use when dissecting subsequent packets, including large chunks of data
allocated if it's reassembling packets.
There might also be real memory leaks; some have been fixed after
0.10.12 was released.
Tethereal, if it's dissecting packets, is not a program that can be left
to run forever, because, as indicated, it's stateful, and, for some
packets, allocates memory that's never freed.