-1

C でファイルのサイズを取得しようとしていますが、コードにファイル サイズの出力が表示されません。これが私のコードです

#include<stdio.h>
#include<fcntl.h>
#include<io.h>
#include<BIOS.H>
#include<DOS.H>

unsigned int handle;
void main()
{
    union REGS regs;
    unsigned long int size;
    handle = open("c:\\abc.txt",O_RDONLY);
    regs.x.bx = handle;
    regs.h.ah = 0x42;
    regs.h.al = 0x02;    //correction
    regs.x.cx = 0;
    regs.x.dx = 0;
    int86(0x21,&regs,&regs);
    *((int*)(&size)) = regs.x.ax;
    *(((int*)(&size))+1) =regs.x.dx;
    printf ("Size is %d" ,size);
}

出力が表示されない理由を教えてください

4

1 に答える 1

1

使用するfstat

#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main( void )
{
   struct _stat buf;
   int fh, result;

   fh = _open( "c:\\abc.txt", O_RDONLY );

   /* Get data associated with "fh": */
   result = _fstat( fh, &buf );

   /* Check if statistics are valid: */
   if( result != 0 ) {
      printf( "Bad file handle\n" );
   } else {
      printf( "File size     : %ld\n", buf.st_size );
   }
   _close( fh );
}
于 2012-11-07T07:22:24.837 に答える