On Mon, 2025-11-10 at 08:47 +0100, Thomas Schmitt wrote:
> Hi,
> 
> i think it is worth a mail thread to investigate the problem
> mentioned
> by Van Snyder in the course of thread "where does command output go".
> 
> Van Snyder wrote:
> > my program opens MyFifo (created by mkfifo if it
> > doesn't already exist) for reading and then runs "zcat TheFile.gz |
> > MyFifo"
> > If one of the files is big, instead of zcat blocking until my
> > program
> > consumes more data, they both block.
> 
> Is the "|" in "zcat TheFile.gz | MyFifo" a typo ?

I think it was actually  "zcat TheFile.gz> MyFifo  ; echo EOF> MyFifo "

> I get an immediate error
> 
>   -bash: MyFifo : Permission denied
> 
> 
> When using the fifo as file target, i don't have problems with large
> data.
> In one terminal window i do
> 
>   zcat file.gz > MyFifo
> 
> which blocks until i run in another terminal window:
> 
>   wc MyFifo
> 
> which after about 7 seconds reports:
> 
>   10476860 30976353 601600000 MyFifo
> 
> The same happens if i start the data consumer first
>   wc MyFifo
> and only then the data producer
>   zcat file.gz > MyFifo
> 
> In both cases, the first process blocks until the other gets started.
> Then processing goes plausibly fast.
> 
> 
> So please test that above gestures work for you as experienced by me.
> If so, then it is worth that you explain in more detail what your
> programs do differently.
> 
> If above does not work for you, then the version numbers of Debian
> and
> of the Linux kernel would be of interest. (Not that i would have an
> idea what could go wrong ...)
> 
> 
> Have a nice day :)
> 
> Thomas
> 

Reply via email to