Windows 플랫폼의 최대 파일 크기

Windows 플랫폼의 최대 파일 크기

에 따르면이 위키피디아 페이지, Win10의 개별 파일 크기는 NTFS를 사용하면 최대 약 8PB까지 올라갈 수 있습니다. 그러나 구조체 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 제한을 의미합니다. 에 따르면이 스택오버플로우 페이지, 32비트 OS의 경우에도 파일 크기가 이보다 클 수 있습니다.

내가 실수한 것이 아니라면 어떻게 struct stat를 사용하여 파일 크기를 안정적으로 얻을 수 있습니까? 게다가 파일 크기가 긴 유형의 한도를 초과하면 어떻게 되나요?

답변1

차라리 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;
};

여기서는 32비트가 아닌 64비트 st_size입니다 .__int64

관련 정보