Windows 플랫폼의 최대 파일 크기


5

에 따르면 이 위키 피 디아 페이지 Win10에서 개별 파일의 크기는 NTFS로 약 8 PB까지 올라갈 수 있습니다. 그러나 struct Stat는 다음과 같이 정의됩니다.

struct stat
{
    _dev_t         st_dev;
    _ino_t         st_ino;
    unsigned short st_mode;
    short          st_nlink;
    short          st_uid;
    short          st_gid;
    _dev_t         st_rdev;
    _off_t         st_size;
    time_t         st_atime;
    time_t         st_mtime;
    time_t         st_ctime;
};

여기서 off_t는 long으로 정의 된 유형입니다. 이는 약 4GB 제한을 의미합니다. 에 따르면 이 stackoverflow 페이지 , 32 비트 OS에서도 파일 크기가 더 클 수 있습니다.

내가 실수를하지 않는다면 어떻게 struct stat을 사용하여 파일의 크기를 안정적으로 얻을 수 있습니까? 또한 파일 크기가 긴 형식의 제한을 초과하면 어떻게됩니까?

답변:


4

64 비트 버전의 통계 함수 .

__stat64 구조체는 stat.h 파일 포함 :

struct _stat64
{
    _dev_t         st_dev;
    _ino_t         st_ino;
    unsigned short st_mode;
    short          st_nlink;
    short          st_uid;
    short          st_gid;
    _dev_t         st_rdev;
    __int64        st_size;
    __time64_t     st_atime;
    __time64_t     st_mtime;
    __time64_t     st_ctime;
};

여기에서 st_size ~이다. __int64 이것은 32 비트가 아닌 64 비트입니다.


감사. 나는 __stat64가 64 비트 OS 용이라고 생각했습니다.
John Z. Li

32 비트 시스템을 사용하고 있다면 32 비트 시스템을 계속 사용할 수 있습니다. GetFileSize 함수 .
harrymc

그게 정확히 내가 찾는거야.
John Z. Li
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.