www.digitalmars.com         C & C++   DMDScript  

c++.dos.16-bits - wrong code generated by tiny program of below thread

reply "Lars Hansen" <lars.o.hansen gmx.de> writes:
the following program compiled with sc "sourcefilename" produces a program
which does the following:

appends b at end of file, places b at file offset 138

it should place b at file offset 71 and 138  (b is the char array)

(also compiling with -o or -mtd produces this wrong code)

Also two qs:
1. when compiled with -mt there's the optlink warning 23 "No Stack": so does
the compiler not generate pushes or will they result in code loss?
2. when compiling with -mtd x.n filenames are shortened to x.3 filenames
(x<8)resulting in the file rt.htm created by the program. Is there a
workaround?


dmc version 8.29n


Lars


 #include <dos.h>
 #include <stdio.h>

 int main(void)
  {
   FILE *f;
   char b[4];
   struct date d;

   getdate(&d);

   b[3]=d.da_day%10+48;
   d.da_day/=10;
   b[2]=d.da_day%10+48;

   b[1]=d.da_mon%10+48;
   d.da_mon/=10;
   b[0]=d.da_mon%10+48;

   f=fopen("rt.html","a");
   fseek(f,71,SEEK_SET);
   fwrite(b,sizeof(char),4,f);
   fseek(f,138,SEEK_SET);
   fwrite(b,sizeof(char),4,f);
   fclose(f);

   return 0;
  }

Feb 15 2003
parent "Lars Hansen" <lars.o.hansen gmx.de> writes:
 2. when compiling with -mtd x.n filenames are shortened to x.3 filenames
 (x<8)resulting in the file rt.htm created by the program. Is there a
 workaround?

small correction: -mt causes filename truncation, not -mtd
Feb 15 2003