Autor: Przemyslaw Dobrowolski (dobrawka_at_asua.org.pl)
Data: Mon 23 Jul 2001 - 19:36:04 MET DST
On Mon, 23 Jul 2001 19:12:12 +0200 (MET DST), Rafal Szymczak wrote:
>pliku. Ponizej jest fragment programu kompilowany VAC-kiem. Choc czasem
>sie zdarzalo, ze plik utworzony przekraczal nieznacznie granice 2 GB, to
>nigdy nie wyszedl poza nia o wiecej niz pare MB.
>
> fpout = fopen( szOutputFile, "a" );
[...]
> fprintf( fpout, "%-15.15s %s ", szServer, ExtrTimeStamp(
[...]
> fprintf( fpout, "%-15.15s %-20.20s"
[...]
> iRC = fprintf( fpout, " %s\n", szTimeStamp ); <=== ***
>tu sie wywalal ***
> if ( iRC <= 0 )
[...]
Ja rozumiem, że lewhoo może takie bzdury pisać, ale Ty?
A spróbuj potestować, używając API, tak:
DosOpen(...)
sprintf(do bufora)
DosWrite(bufor który sprinfowałeś)
i co wywali się?
TAK. I nawet pod JFSem.
A zrób tak (trzeba mieć WSeBa lub *CP) i toolkita 4.51:
DosOpenL(te same paremetry)
[.. i wszystko to samo...]
wywali się?
NIE.
Odpowiedź jest bardzo prosta. Po prostu wcześniejsze API nie umiało korzystać z liczb
większych od LONG'a. A zapewne fprintf robił seek'a i otrzymywał liczbę ujemną albo
po prostu przeskakiwał mu licznik.
Ale HPFS
--- *Przemek/2* - dobrawka_at_asua.org.pl - ICQ: 18642806 Asua Programmers http://www.asua.org.pl TeamOS/2pl http://www.teamos2.org.pl This OS/2 system uptime is 0d 0h 23m 05s 539ms (en).
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:33:06 MET DST