[Linuxtrent] appello agli esperti perl

  • From: Michele Bert <micbert75@xxxxxxxxx>
  • To: "linuxtrent@xxxxxxxxxxxxx" <linuxtrent@xxxxxxxxxxxxx>
  • Date: Mon, 27 Oct 2014 15:43:32 +0100

Sto scrivendo uno script in perl che a grandi linee fa 3 semplicissime cose:
- prende un file testo codificato ebcdic, cui tutte le righe sono
lunge 79 caratteri, e privo di carattere di fine riga.
- lo converte in ascii, ed inserisce un carattere di fine riga ogli 79 caratteri
- copia/sposta il risultato in un altra directory

Per convertire da ebcdic ad ascii uso dd, mettendo l'output in pipe
con un HANDLE perl, da cui leggo 79 caratteri alla volta, che scrivo,
intervallati da uno '\n', in un file nella direcory corrente. Infine
chiamo cp oppure mv attraverso una chiamata system() per spostare il
file.

Se copio il file il risultato sembra corretto, mentre se lo sposto,
alcuni di essi risultano vuoti. Così mi domandavo: esistono dei
meccanismi di parallelizzazione o bufferizzazione per cui se io faccio
la 'mv' troppo presto, in realtà sto spostando il file prima che
questo venga effettivamente scritto?

Qualcuno sa darmi qualche altra spiegazione al fenomeno?

-- 
Michele

Attachment: splitAsSource
Description: Binary data

Other related posts: