_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

開いているファイルに関する情報を取得します。Gets information about an open file.

構文Syntax

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
);

パラメーターParameters

fdfd
開いているファイルのファイル記述子。File descriptor of the open file.

バッファーbuffer
結果を格納する構造体へのポインター。Pointer to the structure to store results.

戻り値Return Value

ファイルのステータス情報が取得されると、0 を返します。Returns 0 if the file-status information is obtained. 戻り値-1 はエラーを示します。A return value of -1 indicates an error. ファイル記述子が有効でない場合またはバッファーNULLで説明されているとおり、無効なパラメーター ハンドラーが呼び出されますパラメーターの検証です。If the file descriptor is invalid or buffer is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. 続けるには、実行が許可された場合errnoに設定されているEBADF、無効なファイル記述子が場合またはEINVAL場合は、バッファー NULLします。If execution is allowed to continue, errno is set to EBADF, in the case of an invalid file descriptor, or to EINVAL, if buffer is NULL.

RemarksRemarks

_Fstat関数に関連付けられている開いているファイルに関する情報を取得fdが指す構造体に格納バッファーします。The _fstat function obtains information about the open file associated with fd and stores it in the structure pointed to by buffer. _Stat 、sys \stat.h で定義されている構造には、次のフィールドが含まれています。The _stat structure, defined in SYS\Stat.h, contains the following fields.

フィールドField 説明Meaning
st_atimest_atime ファイルの最後のアクセスの時間。Time of the last file access.
st_ctimest_ctime ファイルの作成の時間。Time of the creation of the file.
st_devst_dev デバイスの場合fd。 それ以外の場合に 0 です。If a device, fd; otherwise 0.
st_modest_mode ファイル モード情報のビット マスク。Bit mask for file-mode information. _S_IFCHR場合に設定されますfdデバイスを参照します。The _S_IFCHR bit is set if fd refers to a device. _S_IFREG場合に設定されますfdは通常のファイルを参照します。The _S_IFREG bit is set if fd refers to an ordinary file. 読み取り/書き込みのビットは、ファイルのアクセス許可モードに応じて設定されます。The read/write bits are set according to the file's permission mode. _S_IFCHR sys \stat.h で他の定数が定義されているとします。_S_IFCHR and other constants are defined in SYS\Stat.h.
st_mtimest_mtime ファイルの最終変更時刻。Time of the last modification of the file.
st_nlinkst_nlink 非 NTFS ファイル システムでは常に 1 です。Always 1 on non-NTFS file systems.
st_rdevst_rdev デバイスの場合fd。 それ以外の場合に 0 です。If a device, fd; otherwise 0.
st_sizest_size ファイルのサイズ (バイト単位)。Size of the file in bytes.

場合fdデバイスを参照、 st_atimest_ctimest_mtime、およびst_sizeフィールドは、にとって意味がありません。If fd refers to a device, the st_atime, st_ctime, st_mtime, and st_size fields are not meaningful.

Stat.h は Types.h で定義される _dev_t 型を使用するため、コードで Stat.h の前に Types.h を組み込む必要があります。Because Stat.h uses the _dev_t type, which is defined in Types.h, you must include Types.h before Stat.h in your code.

_fstat64、使用、 _ _stat64構造体をその他の関数しか 23時 59分: 59 年 1 月 18 日までの日付を表すファイルの作成日を UTC; 3000 年 12 月 31 日 23時 59分: 59 秒を表すことができますUTC の 2038 年。_fstat64, which uses the __stat64 structure, allows file-creation dates to be expressed up through 23:59:59, December 31, 3000, UTC; whereas the other functions only represent dates through 23:59:59 January 18, 2038, UTC. これらの関数の日付範囲の下限は、いずれも 1970 年 1 月 1 日の午前 0 時です。Midnight, January 1, 1970, is the lower bound of the date range for all these functions.

これらの関数のバリエーションは、32 ビットや 64 ビットの時刻型と、32 ビットや 64 ビットのファイル長をサポートします。Variations of these functions support 32-bit or 64-bit time types and 32-bit or 64-bit file lengths. 最初の数字のサフィックス (32または64) 時間のサイズを表します型の使用は、2 番目のサフィックスはi32またはi64、。ファイル サイズが 32 ビットまたは 64 ビット整数として表されるかどうかを示すです。The first numerical suffix (32 or 64) indicates the size of the time type used; the second suffix is either i32 or i64, indicating whether the file size is represented as a 32-bit or 64-bit integer.

_fstatと等価 _fstat64i32、および構造体 _stat 64 ビットの時刻が含まれています。_fstat is equivalent to _fstat64i32, and struct _stat contains a 64-bit time. これは、該当しない限り、 _USE_32BIT_TIME_Tが定義されている場合、以前の動作が有効になります。_fstat 32 ビットの時刻を使用し、構造体 _stat 32 ビットの時刻が含まれています。This is true unless _USE_32BIT_TIME_T is defined, in which case the old behavior is in effect; _fstat uses a 32-bit time, and struct _stat contains a 32-bit time. 場合も同様 _fstati64します。The same is true for _fstati64.

_stat の時刻型とファイル長型のバリエーションTime Type and File Length Type Variations of _stat

関数Functions _USE_32BIT_TIME_T が定義されているか_USE_32BIT_TIME_T defined? 時刻型Time type ファイル長型File length type
_fstat_fstat 未定義Not defined 64 ビット64-bit 32 ビット32-bit
_fstat_fstat 定義済みDefined 32 ビット32-bit 32 ビット32-bit
_fstat32_fstat32 マクロ定義の影響を受けないNot affected by the macro definition 32 ビット32-bit 32 ビット32-bit
_fstat64_fstat64 マクロ定義の影響を受けないNot affected by the macro definition 64 ビット64-bit 64 ビット64-bit
_fstati64_fstati64 未定義Not defined 64 ビット64-bit 64 ビット64-bit
_fstati64_fstati64 定義済みDefined 32 ビット32-bit 64 ビット64-bit
_fstat32i64_fstat32i64 マクロ定義の影響を受けないNot affected by the macro definition 32 ビット32-bit 64 ビット64-bit
_fstat64i32_fstat64i32 マクロ定義の影響を受けないNot affected by the macro definition 64 ビット64-bit 32 ビット32-bit

必要条件Requirements

関数Function 必須ヘッダーRequired header
_fstat_fstat <sys/stat.h> と <sys/types.h><sys/stat.h> and <sys/types.h>
_fstat32_fstat32 <sys/stat.h> と <sys/types.h><sys/stat.h> and <sys/types.h>
_fstat64_fstat64 <sys/stat.h> と <sys/types.h><sys/stat.h> and <sys/types.h>
_fstati64_fstati64 <sys/stat.h> と <sys/types.h><sys/stat.h> and <sys/types.h>
_fstat32i64_fstat32i64 <sys/stat.h> と <sys/types.h><sys/stat.h> and <sys/types.h>
_fstat64i32_fstat64i32 <sys/stat.h> と <sys/types.h><sys/stat.h> and <sys/types.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

// 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 );
}
File size     : 16
Time modified : Wed May 07 15:25:11 2003

関連項目See also

ファイル処理File Handling
_access、_waccess_access, _waccess
_chmod、_wchmod_chmod, _wchmod
_filelength、_filelengthi64_filelength, _filelengthi64
_stat、_wstat 関数_stat, _wstat Functions