[Linuxtrent] Re: appello agli esperti perl

  • From: Michele Bert <micbert75@xxxxxxxxx>
  • To: "linuxtrent@xxxxxxxxxxxxx" <linuxtrent@xxxxxxxxxxxxx>
  • Date: Mon, 27 Oct 2014 17:04:03 +0100

Il 27 ottobre 2014 16:48, Michele Bert <micbert75@xxxxxxxxx> ha scritto:
> for my $mbr (@list) { #per ogni nome di file in @list
>
>     my $infile;
>     my $ofile;
>
> # converti il file in ascii, e metti l'output in pipe
>     my $convcmd="dd if=$mbr.MBR bs=1 conv=ascii 2>$log|";
>     open($infile,$convcmd) or die "Cannot open file $mbr\n";
> # $infile è l'handle che permette di leggere dalla pipe
>
> # apri il file di output
>     open($ofile ,">","$mbr.sql") or die "Cannot initialize output file
> $mbr.sql\n";
>
>     while(read($infile,$line,79)>0) { #leggi 79 caratteri
>         print $ofile "$line\n"; # scrivi i 79 caratteri nel file di
> output, segiuti da un new-line
>     }
>     close($ofile); #chiudi il file di output
>
>     system("mv $mbr.sql $dest/$mbr.MBR 2>$log"); #sposta il file nella
> directory $dest
> #    system("cp $mbr.sql $dest/$mbr.MBR 2>$log"); #copia il file nella
> directory $dest
>
>     close($infile); # chiudi la pipe
> }

Informazione supplementare. La riga che ho omesso nel listing
precedente, appena prima della copia/spostamento del file:

print $vasterm "ADDPFM FILE($mylib/$srcfile) MBR($mbr)\n";

In pratica crea una coppia di files, uno dei quali è proprio
$dest/$mbr.MBR, che viene sovrascritto dal comando di
copia/spostamento successivo. Le idee mi si cominciano a chiarire:
- ho un processo parallelo ($vasterm) a cui do il comando di creare
  il file.
- immediatamente dopo (aver dato il comando) copio un file
  con lo stesso nome
- successivamente il processo $vasterm crea il secondo file (vuoto)
  sovrascrivendo quello che ho appena copiato.

L'ipotesi è verosimile, no?

-- 
Michele
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: