다음을 통해 공유


_stat, _wstat 함수

파일에서 상태 정보를 가져옵니다.

int _stat(
   const char *path,
   struct _stat *buffer 
);
int _stat32(
   const char *path,
   struct __stat32 *buffer 
);
int _stat64(
   const char *path,
   struct __stat64 *buffer 
);
int _stati64(
   const char *path,
   struct _stati64 *buffer 
);
int _stat32i64(str
   const char *path,
   struct _stat32i64 *buffer 
);
int _stat64i32(str
   const char *path,
   struct _stat64i32 *buffer 
);
int _wstat(
   const wchar_t *path,
   struct _stat *buffer 
);
int _wstat32(
   const wchar_t *path,
   struct __stat32 *buffer 
);
int _wstat64(
   const wchar_t *path,
   struct __stat64 *buffer 
);
int _wstati64(
   const wchar_t *path,
   struct _stati64 *buffer 
);
int _wstat32i64(
   const wchar_t *path,
   struct _stat32i64 *buffer 
);
int _wstat64i32(
   const wchar_t *path,
   struct _stat64i32 *buffer 
);

매개 변수

  • path
    기존 파일이 나 디렉터리의 경로 포함 하는 문자열을 포인터입니다.

  • buffer
    결과 저장 하는 구조체에 대 한 포인터입니다.

반환 값

파일 상태 정보를 가져올 경우 각이 함수 0을 반환 합니다.반환 값-1의 경우에 오류를 나타내는 errno 로 설정 된 ENOENT, 파일 이름 또는 경로 찾을 수 없습니다 있음을 나타내는.반환 값이 EINVAL 나타내는 잘못 된 매개 변수입니다. errno또한 설정 된 EINVAL 이 경우입니다.

[!참고]

경우 path 위치 포함 된 디렉터리를 후행 백슬래시는 사용할 수 없습니다.면-1이 반환 됩니다 및 errno 지정 합니다 ENOENT.

참조 하십시오 _doserrno, errno, _sys_errlist, 및 _sys_nerr , 및 기타에 대 한 자세한 내용은 코드를 반환 합니다.

사용 하지 않으면 자정 utc 1970 년 1 월 1 일 및 23시 59분: 59, 3000, 12 월 31 UTC 하기 전에 나중에 있는 경우 파일의 날짜 스탬프를 나타낼 수 있습니다 _stat32 또는 _wstat32, 또는 정의 된 _USE_32BIT_TIME_T, 경우 날짜는 03시 14분: 07까지 2038 1 월 19 일, UTC 나타낼 수 있습니다.

설명

_stat 함수 지정 된 디렉터리나 파일에 대 한 정보를 가져옵니다 path 가 가리키는 구조체에 저장 한 buffer._stat자동으로 현재 사용 중인 멀티 바이트 코드 페이지에 따라 멀티 바이트 문자 시퀀스를 인식 합니다. 멀티 바이트 문자 문자열 인수를 적절 하 게 처리 합니다.

_wstat와이드 문자 버전입니다 _stat. path 인수를 _wstat 와이드 문자 문자열입니다._wstat및 _stat 동일 하 게 동작 _wstat 멀티 바이트 문자 문자열을 처리 하지 않습니다.

시간 형식 32 비트 또는 64 비트 및 32 비트 또는 64 비트 파일 길이 변형 이러한 함수를 지원 합니다.첫 번째 숫자 접미사 (32 또는 64) 크기 시간 형식을 사용 합니다. 두 번째 접미사입니다 i32 또는 i64, 나타내는 파일 크기는 32 비트 또는 64 비트 정수로 표현 되는 것인지.

_stat에 _stat64i32, 및 struct_stat 64 비트 시간을 포함 합니다.이 경우가 아니면 _USE_32BIT_TIME_T 경우 이전 동작을 적용 합니다; 되지 정의 됩니다 _stat32 비트 시간, 사용 하 고 struct_stat 32 비트 시간을 포함 합니다.에 대 한 마찬가지입니다 _stati64.

[!참고]

_wstat가 작동 하지 않습니다 Windows Vista 기호화 된 링크입니다.이러한 경우 _wstat 항상 보고서의 크기는 0 있습니다._stat심볼 링크를 올바르게 작동 합니다.

이 함수의 매개 변수의 유효성을 검사 합니다.두 경우 path 또는 buffer 입니다 NULL, 설명에 따라 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사.

시간 형식 및 _stat의 파일 길이 형식 변형

함수

정의 된 _USE_32BIT_TIME_T?

시간 형식

파일 길이 형식입니다.

_stat, _wstat

정의 되지 않은

64비트

32비트

_stat, _wstat

정의됨

32비트

32비트

_stat32, _wstat32

매크로 정의에 영향을 받지 않습니다.

32비트

32비트

_stat64, _wstat64

매크로 정의에 영향을 받지 않습니다.

64비트

64비트

_stati64, _wstati64

정의 되지 않은

64비트

64비트

_stati64, _wstati64

정의됨

32비트

64비트

_stat32i64, _wstat32i64

매크로 정의에 영향을 받지 않습니다.

32비트

64비트

_stat64i32, _wstat64i32

매크로 정의에 영향을 받지 않습니다.

64비트

32비트

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되지 않았습니다.

_Mbcs가 정의

_Unicode가 정의

_tstat

_stat

_stat

_wstat

_tstat64

_stat64

_stat64

_wstat64

_tstati64

_stati64

_stati64

_wstati64

_tstat32i64

_stat32i64

_stat32i64

_wstat32i64

_tstat64i32

_stat64i32

_stat64i32

_wstat64i32

_stat SYS\STAT에 정의 된 구조체입니다.H는 다음과 같은 필드가 포함 되어 있습니다.

  • st_gid
    항상이 필드 (UNIX에 따라) 파일을 소유한 그룹의 숫자 id 0 Windows 시스템입니다.리디렉션된 파일 Windows 파일로 분류 됩니다.

  • st_atime
    파일의 마지막 액세스 시간 합니다.NTFS 있지만 제외 FAT에서 유효 디스크 드라이브를 포맷합니다.

  • st_ctime
    파일의 만든 시간입니다.NTFS 있지만 제외 FAT에서 유효 디스크 드라이브를 포맷합니다.

  • st_dev
    해당 파일이 포함 된 디스크의 번호를 드라이브 (와 같은 st_rdev).

  • st_ino
    정보 노드의 개수 (는 inode) (UNIX에 따라) 파일에 대 한.UNIX 파일 시스템에 있는 inode 파일 날짜 및 타임 스탬프, 권한 및 내용에 설명 합니다.파일이 하드-서로 연결 되 면 동일한 공유 inode.inode, 즉 st_ino, FAT, HPFS, NTFS 파일 시스템에는 의미가 없습니다.

  • st_mode
    파일 모드 정보에 대 한 비트 마스크입니다._S_IFDIR 비트가 설정 하는 경우 path ; 디렉터리를 지정 합니다. _S_IFREG 비트가 설정 하는 경우 path 는 일반 파일이 나 장치를 지정 합니다.사용자가 읽기/쓰기 비트 파일의 사용 권한 모드에 따라 설정 됩니다. 사용자 비트 실행 파일 이름 확장명에 따라 설정 됩니다.

  • st_mtime
    마지막으로 수정한 파일의 시간입니다.

  • st_nlink
    비 NTFS 파일 시스템을 항상 1입니다.

  • st_rdev
    해당 파일이 포함 된 디스크의 번호를 드라이브 (와 같은 st_dev).

  • st_size
    바이트 단위의 파일 크기입니다. 로 대 한 64 비트 정수를 i64 접미사**.**

  • st_uid
    (특정 UNIX) 파일을 소유한 사용자의 숫자 식별자입니다.이 필드는 항상 0이 Windows 시스템 됩니다.리디렉션된 파일 Windows 파일로 분류 됩니다.

경우 path 장치를 참조는 st_size, 다양 한 시간 필드 st_dev, 및 st_rdev 에서 필드는 _stat 구조는 의미가 없습니다.때문에 STAT입니다.H 사용 하 여 _dev_t 입력 된 형식에 정의 된.H, 유형을 포함 해야 합니다.STAT 전에 H입니다.코드에 H입니다.

요구 사항

루틴

필수 헤더

선택적 헤더

_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32

<sys/types.h> <sys/stat.h>에서 뒤에.

<errno.h>

_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32

<sys/types.h> <sys/stat.h>에서 뒤에. 또는 <wchar.h>

<errno.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_stat.c
// This program uses the _stat function to
// report information about the file named crt_stat.c.
 
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>

int main( void )
{
   struct _stat buf;
   int result;
   char timebuf[26];
   char* filename = "crt_stat.c";
   errno_t err;

   // Get data associated with "crt_stat.c": 
   result = _stat( filename, &buf );

   // Check if statistics are valid: 
   if( result != 0 )
   {
      perror( "Problem getting information" );
      switch (errno)
      {
         case ENOENT:
           printf("File %s not found.\n", filename);
           break;
         case EINVAL:
           printf("Invalid parameter to _stat.\n");
           break;
         default:
           /* Should never be reached. */
           printf("Unexpected error in _stat.\n");
      }
   }
   else
   {
      // Output some of the statistics: 
      printf( "File size     : %ld\n", buf.st_size );
      printf( "Drive         : %c:\n", buf.st_dev + 'A' );
      err = ctime_s(timebuf, 26, &buf.st_mtime);
      if (err)
      {
         printf("Invalid arguments to ctime_s.");
         exit(1);
      }
      printf( "Time modified : %s", timebuf );
   }
}
  

해당 .NET Framework 항목

참고 항목

참조

파일 처리

_access, _waccess

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_getmbcp

_setmbcp