代码:
  int rc, err_no;  rc = _eof( handle );
  err_no = errno;
  if(rc < 0) printf("_eof(%d) = %d, errno=%d(%s)\n", handle, rc, err_no, strerror(err_no));有一个文件,长度是: 4550312030
则_eof()出错:
_eof(3) = -1, errno=22(Invalid argument)小于 2GB 的文件则OK。请教是什么原因?谢谢!

解决方案 »

  1.   

    _eof  好像返回是一个整数,那样超过2G就成负数了,
      

  2.   

    CreateFile,然后GetFileSizeExBOOL   GetFileSizeEx( 
        HANDLE   hFile,                             //   handle   to   file 
        PLARGE_INTEGER   lpFileSize     //   file   size 
    ); 
      

  3.   

    是否VC++6 的 BUG?
    _eof() 的判断主要是用于循环
      

  4.   

    有谁用 VC++ 6 读写过 超过 2GB 的文件吗?