Notice that on Linux, the /tmp/ is probably necessary if your home directory is NFS mounted. /tmp/ is a local disk, avoiding this kind of problem.
This created a named pipe (or a fifo). This pseudo file is read by the program in the usual way (cfopen etc) but in ZEBRA C Exchange mode (LI).
call cfopen(lundei,0,lrecl,'r ',0,'/tmp/PIPE',iostat) if(lundei.eq.0.and.iostat.eq.0) iostat = 7777 iquest(1) = lundei infori = 'LI' call fzfile(lunin,lrecl,infori)
Then the data are sent into the pipe. In order to allow C-Zebra to read the file, you need to compile and link cfget.c (modifications to the Cern lib version). This is done with the cfget.c subprogram (Thanks to Francesco Ragusa).
Compile the subprogram first:
Then issue the command
zcat the_compressed_file.gz > /tmp/PIPE gzcat the_compressed_file.gz > /tmp/PIPE gzip -d -c the_compressed_file.gz > /tmp/PIPE
This command can even be included in a system call inside the analysis program.
In case of problem, please send me an email.