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 >

