2012-11-07 77 views
-1

顯示我試圖獲取文件的大小C,但我的代碼並不顯示與文件大小的任何輸出。這裏是我的代碼大小的文件是不是在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); 
} 

有人能告訴我爲什麼輸出沒有顯示

+0

什麼操作系統,MS-DOS? –

+0

我使用Windows XP – user1819920

+1

有什麼不好的['_stat'(http://msdn.microsoft.com/en-us/library/14h5k7ff%28v=vs.100%29.aspx)功能? –

回答

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); 
} 
+0

錯誤'未定義的符號_O_CREAT'和'_O_RDONLY' – user1819920

+0

@ user1685991更新 – iabdalkader

+0

'_fstat'應該有一個原型 – user1819920

相關問題