Memóriát a fájlba írni majd utána a memóriát kiolvasni a fájlból mennyire használható/biztonságos?
Erre a memóriát a fájlba majd utána memóriát kiolvasni a fájlból nem rég találtam rá és még nem nagyon ismerem.
Jelenleg az érdekelne, hogy amit a fájlba ír memóriát annak van esély, hogy meghibásodhat és nem fogja tudni kiolvasni?
Pl. olyanra gondolok, hogy futtatok egy apt-get update/upgrade-et és olyan csomagokat frissít ami ezért a memóriakezelésért felelős és nem fogja tudni utána kiolvasni a memóriát a fájlból.
Én eddig a változóknak az értékeit mentettem a fájlba nem pedig a memóriáját szóval ez is érdekelne, hogy most egy 1 dimenziós array-t inkább egy for ciklussal az értékeit a fájlba írni vagy egyszerűen a memóriáját a fájlba lenne egyszerűbb.
Persze ha fent áll annak a veszélye, hogy valami módosulás folytán nem tudná kiolvasni a már korábban kiírt memóriát akkor maradnék a jelenlegi módszeremnél.
Válaszokat előre is köszönöm!
Azok a programok, amik hosszabb távon tárolnak valamilyen információt, azok 99%-ban (de lehet, hogy 100%) úgy működnek, hogy a memóriából írják a háttértárra az adatokat.
Ebből a memóriás katyvaszból amit ideírtál mondjuk egy szót se értettem.
Ha jól értelmezem (erősíts meg, kérlek), akkor annyiról van szó, hogy egy tömböt kiírsz a merevlemezre?? Mert akkor ez sima fájlkezelés, nem kell ilyen hatásvadász címeket adni, hogy memória fájlba írása. ;)
"Én eddig a változóknak az értékeit mentettem a fájlba nem pedig a memóriáját"
Most sem a memóriáját mented le... csak az általa lefoglalt (adat)memória egy részét. Azaz (kapaszkodj meg): a változók memóriaterületét. Azaz a változók értékeit.
A példában egy dinamikusan lefoglalt tömböt mentett ki, és töltött be. Ami működik is, meg minden, de ha van a programodban 46 darab változó, a legkülönfélébb adattípusokból, akkor nem fogod tudni egy az egyben az általuk lefoglalt memóriaterületet kirántani vinyóra.
A mellékelt példa inkább csak egy speciális lehetőség arra az esetre, ha egy nagy méretű tömböt akarsz némileg gyorsabban kimenteni és betölteni. De a GHz-es sokmagos procik korában pár tíz, vagy pár száz változót egyenként sem tart szinte semeddig betölteni. (Nem azt mondom, hogy az ember ne optimalizáljon, de azért programfutásonként 1-2 nyereséggel ms nem biztos, hogy érdemes foglalkozni.)
Az oprendszer memóriakezelésének meg ehhez semmi köze, ezek szabványos C(++) könyvtári függvények.
"Jelenleg az érdekelne, hogy amit a fájlba ír memóriát annak van esély, hogy meghibásodhat és nem fogja tudni kiolvasni?"
Van.
"Pl. olyanra gondolok, hogy futtatok egy apt-get update/upgrade-et és olyan csomagokat frissít ami ezért a memóriakezelésért felelős és nem fogja tudni utána kiolvasni a memóriát a fájlból."
Ok, tegyük fel frissíted a libstdc++-t (ez az egyik lib, amiben - többek közt - memóriakezelő függvények is vannak), és az új verzió nem lesz képes a régebbi verziót által kiírt memóriát olvasni, erre gondolsz? Ennek akkor van esélye, ha pl. meghal a lemez, vagy bármilyen más okból olvashatatlanná válik - de ennek semmi köze a memóriakezeléshez. Azt hiszem, te azt gondolod, hogy a memória kezelő rutinnak van valamilyen fix formátuma, amiben kiíródik a lemezre a memóriatartalom. Ez nem így van, a memóriakezelő rutinok egyszerűen bájtokkal dolgoznak. Amikor a változód tartalmát lemezre mented, az pontosan ugyanaz, mint amikor valamilyen másféle módszerrel a memóriát mented a lemezre, hisz a változód tartalma is ugyanúgy a memóriában van tárolva. A jelenlegi módszered pontosan ugyanazt eredményezi, mint a memóriakiírásos dolog - bájtok halmazát a lemezen. Csak gondolom te most még nem foglalkozol a dinamikus memóriakezeléssel, a statikus pedig egyes részleteket elrejt előled, pl. azt a részletet, amikor le kell foglalnod a memóriát a változód számára (és amit a végén majd felszabadítasz).
De egyébként szerintem ritkán írjuk ki az adatokat közvetlenül a memóriából úgy ahogy ott vannak, előszőr valamilyen formátumra alakítjuk, vagyis struktúrába szervezzük. Egy jpg kép sem úgy van tárolva a memóriában, ahogy a lemezre íródik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!