_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 항목
참고 항목
참조
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32