Newsgroup: it.comp.lang.perl
Titolo: Problemi con la scrittura di file.

Buongiorno a tutti,
    ringrazio anticipatamente tutti coloro che avranno la gentilezza e la
cortesia di rispondere a questo mio messaggio e, evitando di allungare
troppo il discorso, mi permetto di passare subito al dunque.
Ho un grosso problema che oserei definire sostanziale per il funzionamento
di uno script CGI. Da un po' di tempo a questa parte mi sono interessato
all'interattività che alcuni linguaggi di programmazione come il Perl
consentono di ottenere da Internet. Proprio su questi interessi, ho da poco
deciso di dedicarmi ad un valido linguaggio come il Perl per porre in essere
un sito Internet piuttosto interattivo. Tutto subito le cose sembravano
piuttosto facili e di fatto lo sono state fino a che non mi sono inbattuto
in un problema che ancora adesso non ho assolutamente capito e
conseguentemente risolto relativo alla scrittura e modifica di file. Mi
accingo ad esporre il problema. Il funzionamento del mio sito dovrebbe
essere molto simile ad un guestbook dove i visitatori, esprimendo la propria
opinione, non fanno altro che richiamare uno script CGI il quale interviene
su di un particolare file con l'intento di aggiornarlo dove con questo
termine si intende un aggiornamento solo di caratteri oppure l'aggiunta vera
e propria di nuove informazioni addizionali (maggiore dimensione del file).
Il problema è proprio qui: se lo script si limita ad aggiornare il file
lsciando inalterata la sua dimensione, tutto funziona bene, ma se interviene
aggiungendo delle informazioni sotto forma di banale stringa, il file
diventa illeggibile. Mi spiego meglio, diventa illeggibile ad un altro
script CGI che da questo file dovrebbe prelevare le informazioni per redarre
una pagina HTML. La cosa più curiosa però sta nel fatto che, se richiamo lo
stesso script di lettura dopo diverse ore o addiritturra il giorno dopo, il
file diventa assolutamente leggibile dallo script senza che si sia verifica
alcun intervento sul file.
Faccio notare che lo script funziona perfettamente ed anche il file che lo
script non riesce a leggere è perfettamente corretto e leggibile tramite un
qualunque editor di testi.
Purtroppo so di essere stato un po' troppo contorto nell'esposizione dei
fatti e sono benissimo che alcuni di Voi penseranno che io abbia le
allucinazioni ma purtroppo, anche se sembrerà irreale nonchè impossibile, il
problema è proprio vero. Ho già contattato il server che mi fornisce il
servizio esponendogli il problema è loro mi hanno risposto dicendomi che si
tratta di pacchetti persi durante il trasferimento di informazioni. Ora io
non ho la più pallida idea di come risolvere il problema e mi affido alla
cortesia e competenza di tutti Voi affinchè possiate darmi utili
informazioni su come risolvere questo angosciante problema.
Per eventuali approfondimenti sul problema potete contattarmi al mio
indirizzo di posta elettronica e, nell'attesa di Vostre confortanti e utili
risposte, colgo l'occasione per ringraziare e per porre a Voi tutti i
miei più cordiali saluti.
Marco Canavesio.

 miei piů cordiali saluti.
Per aiutarti sarebbe utile vedere anche un po' di codice.
In particolare le routine di scrittura/lettura nei due programmi, e magari
un pezzetto di questo file.
ciao
Stefano

 ha scritto nel messaggio
news:dbdC7.6860$Qj6.6...@news.infostrada.it...

Per chiunque fosse interessato e disponibile per utili consigli, metto a
disposizione la parte di codice relativa al suddetto script. Lasciatemi solo
la vostra email e ve la invierò per posta non appena possibile.
Grazie mille per Vostra collaborazione.
Saluti, Marco Canavesio.

 
mmmm mi puzza molto di problemi dovuti ad accesso concorrente al file. In alre
parole, nn sono problemi strettamente legati a perl ma al sistema operativo. 
Mi spiego, per ridurre gli accessi disco, il sistema operativo non scrive subito su 
disco le modifiche, ma lo fa solo quando chiudi il file o quando viene eseguito un
'flush'. Adesso non ho il tempo di guardare la doc, ma verifica quello che ti 
ho detto.
-- 
Leo TheHobbit 
IRCnet #roma2
ICQ 56656060
e-mail: remove 
dont.spam.me
 from above address