_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
열려 있는 파일에 대 한 정보를 가져옵니다.
int _fstat(
int fd,
struct _stat *buffer
);
int _fstat32(
int fd,
struct __stat32 *buffer
);
int _fstat64(
int fd,
struct __stat64 *buffer
);
int _fstati64(
int fd,
struct _stati64 *buffer
);
int _fstat32i64(
int fd,
struct _stat32i64 *buffer
);
int _fstat64i32(
int fd,
struct _stat64i32 *buffer
);
매개 변수
fd
열린 파일의 파일 설명자입니다.buffer
결과 저장 하는 구조체에 대 한 포인터입니다.
반환 값
파일 상태 정보를 취득 한 경우 0을 반환 합니다.반환 값-1은 오류를 나타냅니다.파일 설명자가 유효 하지 않은 경우 또는 buffer 입니다 NULL, 설명에 따라 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사.실행을 계속 수 있으면 errno 설정 되어 EBADF에 잘못 된 파일 설명자의 나를 EINVAL경우, buffer 입니다 NULL.
설명
_fstat 함수 연결 된 열린 파일에 대 한 정보를 가져옵니다 fd 가 가리키는 구조체에 저장 한 buffer._stat Sys\stat.h에 정의 된 구조체는 다음과 같은 필드가 포함 되어 있습니다.
st_atime
마지막 파일 액세스 시간 합니다.st_ctime
시간 파일의 생성입니다.st_dev
장치를 하는 경우 fd. 그렇지 않으면 0입니다.st_mode
파일 모드 정보에 대 한 비트 마스크입니다._S_IFCHR 비트가 설정 하는 경우 fd 장치를 말합니다._S_IFREG 비트가 설정 하는 경우 fd 는 일반 파일을 참조 합니다.읽기/쓰기 비트 파일의 사용 권한 모드에 따라 설정 됩니다._S_IFCHR및 기타 상수 sys\stat.h에 정의 됩니다.st_mtime
파일의 마지막으로 수정한 시간입니다.st_nlink
비 NTFS 파일 시스템을 항상 1입니다.st_rdev
장치를 하는 경우 fd. 그렇지 않으면 0입니다.st_size
바이트 단위의 파일 크기입니다.
경우 fd 장치를 참조 하는 st_atime, st_ctime, st_mtime, 및 st_size 필드는 의미가 됩니다.
Stat.h를 사용 하기 때문에 _dev_t 를 입력 하 고 types.h에 정의 된, Types.h Stat.h 하기 전에 코드에 포함 합니다.
_fstat64를 사용 하 여 __stat64 구조, 파일 작성 날짜에 23시 59분: 59부터, 3000, 12 월 31 UTC를 표현할 수 있습니다 다른 함수는만 통해 03시 14분: 07 2038 1 월 19 일에 UTC 날짜를 나타내는 반면.자정 utc 1970 년 1 월 1 일의 모든이 함수에 대 한 날짜 범위입니다.
32 비트 또는 64 비트 시간 형식 및 32 비트 또는 64 비트 파일 길이 변형 이러한 함수를 지원합니다.첫 번째 숫자 접미사 (32 또는 64) 크기 시간 형식을 사용 합니다. 두 번째 접미사입니다 i32 또는 i64, 나타내는 파일 크기는 32 비트 또는 64 비트 정수로 표현 되는 것인지.
_fstat에 _fstat64i32, 및 struct_stat 64 비트 시간을 포함 합니다.이 경우가 아니면 _USE_32BIT_TIME_T 경우 이전 동작을 적용 합니다; 되지 정의 됩니다 _fstat32 비트 시간, 사용 하 고 struct_stat 32 비트 시간을 포함 합니다.에 대 한 마찬가지입니다 _fstati64.
시간 형식 및 _stat의 파일 길이 형식 변형
함수 |
정의 된 _USE_32BIT_TIME_T? |
시간 형식 |
파일 길이 형식입니다. |
---|---|---|---|
_fstat |
정의 되지 않은 |
64비트 |
32비트 |
_fstat |
정의됨 |
32비트 |
32비트 |
_fstat32 |
매크로 정의에 영향을 받지 않습니다. |
32비트 |
32비트 |
_fstat64 |
매크로 정의에 영향을 받지 않습니다. |
64비트 |
64비트 |
_fstati64 |
정의 되지 않은 |
64비트 |
64비트 |
_fstati64 |
정의됨 |
32비트 |
64비트 |
_fstat32i64 |
매크로 정의에 영향을 받지 않습니다. |
32비트 |
64비트 |
_fstat64i32 |
매크로 정의에 영향을 받지 않습니다. |
64비트 |
32비트 |
요구 사항
Function |
필수 헤더 |
---|---|
_fstat |
<sys/stat.h> 및 <sys/types.h> |
_fstat32 |
<sys/stat.h> 및 <sys/types.h> |
_fstat64 |
<sys/stat.h> 및 <sys/types.h> |
_fstati64 |
<sys/stat.h> 및 <sys/types.h> |
_fstat32i64 |
<sys/stat.h> 및 <sys/types.h> |
_fstat64i32 |
<sys/stat.h> 및 <sys/types.h> |
더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt_fstat.c
// This program uses _fstat to report
// the size of a file named F_STAT.OUT.
#include <io.h>
#include <fcntl.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <share.h>
int main( void )
{
struct _stat buf;
int fd, result;
char buffer[] = "A line to output";
char timebuf[26];
errno_t err;
_sopen_s( &fd,
"f_stat.out",
_O_CREAT | _O_WRONLY | _O_TRUNC,
_SH_DENYNO,
_S_IREAD | _S_IWRITE );
if( fd != -1 )
_write( fd, buffer, strlen( buffer ) );
// Get data associated with "fd":
result = _fstat( fd, &buf );
// Check if statistics are valid:
if( result != 0 )
{
if (errno == EBADF)
printf( "Bad file descriptor.\n" );
else if (errno == EINVAL)
printf( "Invalid argument to _fstat.\n" );
}
else
{
printf( "File size : %ld\n", buf.st_size );
err = ctime_s(timebuf, 26, &buf.st_mtime);
if (err)
{
printf("Invalid argument to ctime_s.");
exit(1);
}
printf( "Time modified : %s", timebuf );
}
_close( fd );
}
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.