[elektro] File kommunikáció programok között

Kiss Gabor kissg at ssg.ki.iif.hu
Fri Jun 17 14:26:38 CEST 2016


On 06/17/2016 10:41 AM, hozso_001 at freemail.hu wrote:
>   Nah, jött válasz a másik cégtől...
> "További kérdés, hogy a fájl beolvasása Önök által hogyan történik?
> Azért kérdezem, mert az én programom íráskor először törli a fájl
> tartalmát, majd beleírja a PLC-kből beolvasott adatokat. Ha Önök pont a
> törléskor vagy a teljes feltöltés előtt olvassák ki az adatokat, akkor
> nem kerül minden adat kiolvasásra. Javaslom, hogy beolvasáskor legyen
> egy méret ellenőrzés, hogy a fájl mérete megfelelő-e, tehát ellenőrizni
> kellene, hogy minden adat beírásra került az olvasás pillanatában! "
> 
> A fájl méretének ellenőrzésére nem lesz lehetőség.Ha lehetne ne töröljék
> a fájl tartalmat csak az íráspointert állítsák vissza a fájl elejére, ha
> a fájlban van egy kis „inkonzisztencia”, az nem jelent nagy problémát.
> 
> Ha ez nem megy, akkor egy másik file-t kellene írni és azt egy
> másolással átírni – felülírni – az általunk használtat.
> 
>   Lehet ilyet csinálni text file-al? Tehát, hogy egy meglévő fájlban egy
> sort átírok? 

Egy POSIX compliant operációs rendszerben simán.
(Noha nem sororientáltan. Tetszőleges N egymás utáni byte-ot átírhatsz
a sorozat közepén. Mint egy papírszalagon. Nincs vágás, ragasztás,
csak satírozás.)
A vindózról nyilatkozzon a redmondi nénikéje!

Javaslatom: nyiss egy teljesen új file-t, írj bele, de ne másold (az egy
marhaság), hanem nevezd át!
Linuxban ez atomi művelet lenne. [Ld. rename(2)] A legrosszabb eset az
lehetne, hogy a consumer process még egy kicsit a régit olvasgatja,
noha te meg már adtál neki egy újat. Vindózban ki tudja...?

És egy (koncepcionálisan) rossz programmal bármit el lehet rontani.
Pl. ha a fogyasztó sosem zárja le a file-t, csak seekelget benne.
Szóval ha nincs részletes megállapodás köztetek, akkor
előbb-utóbb hiba lesz.
Kicsit jobb a helyzet, ha ezt a consumer képes a hibahelyzetet
detektálni, és kikeveredni belőle. És persze ha elviseli az
időnkénti adatvesztést.

kissg
-- 
No smoke, no drugs, no vindoze.



More information about the Elektro mailing list