[Thread Prev][Thread Next][Index]

Re: pipe and FIFO



Guille,

Not really sure why the FIFO is faster, but you can get around the slow pipe problem by using the -server command line argument to Ferret, i.e.:

    ferret -server -gif


Guille wrote:

> Dear Ferreters,
>
> I have try those four things using Ferret.
> All those methods works but only the #4 is fast.
>
> #1
> /Ferret/bin/ferret > /dev/null -gif < guille_commands.jnl
>
> #2
> cat guille_commands.jnl  |  /Ferret/bin/ferret  > /dev/null -gif
>
> #3 (popen and pclose within a C programm)
> if( (ferret = popen("/Ferret/bin/ferret > /dev/null -gif","w")) == NULL)
>
>     printf("pipe not open\n");
>     ....
>    fprintf(ferret,"DEFINE AXIS/X=%.4f:%.4f:0.1/UNITS=meter
> xlong\n",minlon,maxlon);
>     ....
>     ....
> pclose(ferret);
>
> #4
> /* after having created a FIFO called tube */
> /Ferret/bin/ferret > /dev/null -gif < tube &
> cat guille_commands.jnl >> tube
>
> The three first are very slow. When I didnt't redirect the output
> /dev/null I can see Ferret executing all the commands on my screen.  If
> I give Ferret about 20 commands, it will take lots of time to write it
> on the screen and I won't be able to see my gif until it is finished. I
> tought maybe a simple indirection could do the job ( > /dev/null) but it
> took exactly the same time except that it is not verbose.
>
> When I use a named pipe (#4) Ferret executes my commands very quickly
> and the gif is alright.
>
> My question is:
> What is the difference for Ferret between those three methods. Why #1,
> #2 and #3 executes very slowly and seems to take time to write
> everything character by character? Why #4 is faster? To me, all methods
> should do the same thing!?
>
> Thanks,
> Guille.

--
Joe Sirott





[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement