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 400000";

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 4000000");

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 400000";
> 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.

Reply via email to