X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f Message-ID: <432821e9$0$177$cc7c7865@news.luth.se> From: Martin Str|mberg Subject: Re: Help with Dos errors Newsgroups: comp.os.msdos.djgpp References: <000201c5b929$9702fbc0$ae7ba8c0 AT JPS DOT local> User-Agent: tin/1.4.6-20020816 ("Aerials") (UNIX) (NetBSD/1.6Q (alpha)) Date: 14 Sep 2005 13:13:13 GMT Lines: 52 NNTP-Posting-Host: speedy.ludd.ltu.se X-Trace: 1126703593 news.luth.se 177 130.240.16.13 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Benjamin Belisle wrote: > Thank you for your responses. > My function that writes on the diskette looks a bit like this: > if (F_Open ("a:\\agrimtl2.ini", WRITE)) { > return 1; > } > else { > EcrireINI (); > F_Close (); > } Are those lines above supposed to be fopen and fclose? Assuming so and that ExrireINI() does fprintf or similar, you need to check those return values as well. > sprintf (Buff, "a:\\%u.txt", Annee); > Fichier = fopen (Buff, "wb"); > if (Fichier == NULL) { > return 1; > } > else { > ... And so on > so yes I do verify the return values. Yes, you show us that you check fopen()'s return value (in this case). How about fclose() and fprintf()'s? > But I also want to know why it failled, the possible error codes (_doserrno) > when writing on (a:) are: > Which is why I do: > if(_doserrno > 18 && _doserrno < 40) > { > DosError = 1; > TypeDosError = _doserrno-19; > } What's wrong with errno? > And again, works fine in Windows (which I've heard has a much better DPMI > host than CWSDPMI). No. It's a much worse DPMI server. 1. It doesn't support detecting NULL dereferences. 2. For each new release of WINDOWS, there are a new bunch of bugs that the DJGPP libc has to work-around. Right, MartinS