I modified the script by creating a file and then using it with packdrake
and everything went ok... So the problem is really with the pipe or the open
command with pipe inside perl. I tried to look in perl how to specify the
size of the pipe but cannot find anything useful
Here is my modified code
#open B, "| packdrake -b9s $hdlist 40";
open B, ">$work_dir/pklist";
#foreach (@keys, keys %keys) { print STDOUT "$_ " }
foreach (@keys, keys %keys) { print B "$_\n" }
close B or die "cannot create pklist file\n";
system("cat $work_dir/pklist | $pwd/misc/packdrake -b9s $hdlist 400");
system("rm -rf $work_dir") unless $noclean;
Franck Martin
Database Development Officer
SOPAC South Pacific Applied Geoscience Commission
Fiji
E-mail: [EMAIL PROTECTED]
Web site: http://www.sopac.org/
This e-mail is intended for its recipients only. Do not forward this e-mail
without approval. The views expressed in this e-mail may not be necessarily
the views of SOPAC.
-Original Message-
From: Francois Pons [mailto:[EMAIL PROTECTED]]
Sent: Monday, 27 November 2000 11:00
To: [EMAIL PROTECTED]
Cc: Franck Martin
Subject: Re: [Cooker] making ISO cds error with perl in genhdlist_cz2:
broken pipe
Franck Martin <[EMAIL PROTECTED]> writes:
> open B, "| packdrake -b9s $hdlist 40";
> foreach (@keys, keys %keys) { print B "$_\n"; }
> close B or die "packdrake failed\n";
>
> I get there a broken pipe. I have done some debugging and I found out that
> it seems a maximum of about 2000 chararcter can be passed through the pipe
> to packdrake without getting a broken pipe.
>
> What is wrong?
Can you check that packdrake is running correctly without piping it first
and
with building an archive by a find or similar in a directory ?
>
> Thanks.
François.