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