Fájlrendszer kérdés

Rancz Lajos csiga at fosch.com
Wed May 17 15:51:09 CEST 2006


Moczik Gabor írta:
> Rancz Lajos wrote:
>   
>> Na van még egy kérdésem, fopen-nél a mode megadásánál mi fér bele a 
>> szabványba? Nyilván a "r", "r+", "r", "w", "w+" az OK. De mi van a 
>> "rw+"-al?
>>     
>
> A "w+" onmagaban open-for-update, azaz irhatod, olvashatod a filet. Az "r" 
> megadasa _szerintem_ redundans, nem befolyasol.
>   
Na időközben több helyen is megnéztem. Szóval az a lényeg, hogy a mode 
string a következőkkel _kezdődhet_: r, r+, w, w+, a, a+. Hogy utána mi 
van az nem számít. Tehát az "rw+" simán az "r"-rel  egyenértékű. 
Ugyanígy a "r+foostr" == "r+", a "foostrr+" pedig érvénytelen.
>  > A másik kérdésem, a "b" és a "t" módokkal kapcsolatosan van.
>   
>> DOS és Win alatt a \n az mást tesz (0x0D, 0x0A) a fájlba mint Unix 
>> alatt. Melyik a szabvány? Egyáltalán kell ez a két módosító? Meg kell 
>> különböztetni a bináris és a text fájlokat?
>>     
>
> Innen:
> http://www.opengroup.org/onlinepubs/007908799/xsh/fopen.html
>   
Én is innen csinálom :-)
> "The character b has no effect, but is allowed for ISO C standard 
> conformance. Opening a file with read mode (r as the first character in the 
> mode argument) fails if the file does not exist or cannot be read."
>
> A \n-rol semmit nem ir, bar az unix volt elobb, szoval biztos az a szabvany. 
> Unix alatt ha windows ala valo soremelest akarsz, akkor \r\n-t kell 
> kikuldeni. Meg kene nezni egy multi-platform lib forrasat, de szerintem 
> #ifdef-es direktivakkal dontsd el hogy eppen milyen platformon forditjak, es 
> aszeint definiald a \n erteket.
>   
Perpillanat nem lesz több platform, mivel ez teljesen uC-s, a flashben 
lévő struktúra csak saját magával kompatíbilis, tehát más nem tudja 
olvasni. Ebből következőleg, ha a Unix nem különbözteti meg az "r"-t és 
a "b"-t akkor én se fogom. Maradunk az alapnál. Ha valalki olyat akar, 
majd olyat ír ;-)

Üdv,
Lajos




More information about the Elektro mailing list