다음을 통해 공유


_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 로 설정되고 buffer 가 NULL 인 경우 EINVAL 로 설정 됩니다.

설명

_fstat 함수는 fd 와 관련 된 열린 파일에 대한 정보를 가지고 있고 그것을 buffer 에 의해 포인터 되는 구조에 저장합니다. SYS\Stat.h 에 정의 된 _stat 구조는 다음과 같은 필드를 가집니다.

  • 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 가 Types.h 에 정의된 _dev_t 형식을 사용하기 때문에 반드시 Stat.h 를 코드에 사용하기 전에 Types.h를 포함해야 합니다.

__stat64 구조가 사용하는 _fstat64 는 다른 함수가 1월 19일 2038, UTC 03시 14분 07까지 표현할 수 있는 반해 파일 생성 시간을 12월 31일 3000 , UTC, 23시 59분 59초까지 표현할 수 있습니다. 1970년 1월 1일 자정은 모든 함수의 날짜 범위의 하한 값입니다.

이러한 함수의 변형 시간은 32 비트 또는 64 비트 형식과 32 비트 또는 64 비트 길이를 지원합니다. 첫 번째 숫자 접미사 (32 또는 64) 는 사용 시간 형식의 크기를 나타내고 둘째 접미사는 파일 길이가 32비트 또는 64 비트 정수로 표시되는 지를 알려주는 i32 또는i64 입니다.

_fstat 는 _fstat64i32 와 동일하고 struct_stat 는 64비트 시간을 포함합니다. _USE_32BIT_TIME_T 가 정의 되지 않는 한 이것은 사실입니다. 오랜 동작도 영향을 받습니다. _fstat 는 32비트 시간을 사용하고 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를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

파일 처리

_access, _waccess

_chmod, _wchmod

_filelength, _filelengthi64

_stat, _wstat 함수