Kezdőoldal » Számítástechnika » Programozás » Memóriát a fájlba írni majd...

Memóriát a fájlba írni majd utána a memóriát kiolvasni a fájlból mennyire használható/biztonságos?

Figyelt kérdés

[link]

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!



2018. júl. 12. 08:25
 1/4 anonim ***** válasza:
Ugyanannyi az esélye hogy megsérül, mint bármilyen más file sérülésének az esélye - ennek a memóriakezeléshez semmi köze.
2018. júl. 12. 09:10
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%

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.

2018. júl. 12. 09:43
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
100%

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.

2018. júl. 12. 10:10
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

"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.

2018. júl. 12. 11:30
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!