Re: defrag ?

Autor: Rafal Szymczak (rafalszymczak_at_---NO.SPAM---discoverfinancial.com)
Data: Mon 23 Jul 2001 - 22:28:50 MET DST


Przemyslaw Dobrowolski wrote:
> =

> On Mon, 23 Jul 2001 19:12:12 +0200 (MET DST), Rafal Szymczak wrote:
> =

> >pliku. Ponizej jest fragment programu kompilowany VAC-kiem. Choc czase=
m
> >sie zdarzalo, ze plik utworzony przekraczal nieznacznie granice 2 GB, =
to
> >nigdy nie wyszedl poza nia o wiecej niz pare MB.
> >
> > fpout =3D fopen( szOutputFile, "a" );
> [...]
> > fprintf( fpout, "%-15.15s %s ", szServer, ExtrTimeStam=
p(
> [...]
> > fprintf( fpout, "%-15.15s %-20.20s"
> [...]
> > iRC =3D fprintf( fpout, " %s\n", szTimeStamp ); <=3D=
=3D=3D ***
> >tu sie wywalal ***
> > if ( iRC <=3D 0 )
> [...]
> =

> Ja rozumiem, =BFe lewhoo mo=BFe takie bzdury pisa=E6, ale Ty?
> =

> A spr=F3buj potestowa=E6, u=BFywaj=B1c API, tak:
> =

> DosOpen(...)
> sprintf(do bufora)
> DosWrite(bufor kt=F3ry sprinfowa=A0e=14)
> =

> i co wywali si=EA?
> TAK. I nawet pod JFSem.
> =

> A zr=F3b tak (trzeba mie=E6 WSeBa lub *CP) i toolkita 4.51:
> DosOpenL(te same paremetry)
> [.. i wszystko to samo...]
> =

> wywali si=EA?
> NIE.
> =

> Odpowied=BC jest bardzo prosta. Po prostu wcze=14niejsze API nie umia=A0=
o korzysta=E6 z liczb
> wi=EAkszych od LONG'a. A zapewne fprintf robi=A0 seek'a i otrzymywa=A0 =
liczb=EA ujemn=B1 albo
> po prostu przeskakiwa=A0 mu licznik.
> Ale HPFS
> =

Tylko dlaczego to zdarzalo sie przy tych nieszczesnych 2 GB? Nie sadze
tez, zeby fprintf robil jakis seek. Jezeli juz, to wywalal sie na jakims
pointerze do pliku, ktory mogl przeskakiwac licznik. Poza tym,
wielokrotnie sprawdzalem czy standardowe biblioteki C maja jakies
ograniczenia w porownaniu do systemowych API. Prawie wszystkie funcje w
C sa mapowane na systemowe API w odpowiedni sposob i przy prawidlowym
uzyciu efekt jest taki sam jak systemowych API. W wiekszosci zastosowan,
zwlaszcza przy operacjach tekstowych, uzywanie standardowych funcji C do
operacji wejscia/wyjscia jest *nieporownywalnie* wygodniejsze.

Co do testow, to moze kiedys zrobie, ale na razie to nie mam na to
czasu. Ten projekt juz dawno temu poszedl na polke.

-- =

*******************************************
* *
* Rafal Szymczak *
* Discover Financial Services, Inc. *
* rafalszymczak_at_discoverfinancial.com *
* "Long live OS/2" *
* *
*******************************************



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:33:07 MET DST