_stat、_stat32、_stat64、_stati64、_stat32i64、_stat64i32、_wstat、_wstat32、_wstat64、_wstati64、_wstat32i64、_wstat64i32_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32, _wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32

ファイルのステータス情報を取得します。Get status information on a file.

構文Syntax

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(
   const char *path,
   struct _stat32i64 *buffer
);
int _stat64i32(
   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
);

パラメーターParameters

pathpath
既存のファイルやディレクトリのパスを含む文字列へのポインター。Pointer to a string containing the path of existing file or directory.

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

戻り値Return Value

これらの各関数は、ファイルのステータス情報が取得されると、0 を返します。Each of these functions returns 0 if the file-status information is obtained. 戻り値-1 はエラーを示します。この場合、 errnoENOENTに設定され、ファイル名またはパスが見つからなかったことを示します。A return value of -1 indicates an error, in which case errno is set to ENOENT, indicating that the filename or path could not be found. 戻り値EINVALは無効なパラメーターを示します。この場合、 errnoEINVALに設定されます。A return value of EINVAL indicates an invalid parameter; errno is also set to EINVAL in this case.

戻り値の詳細については、「 _doserrno、errno、_sys_errlist、および _sys_nerr 」を参照してください。See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on this, and other, return codes.

ファイルの日付スタンプは、_USE_32BIT_TIME_Tまたは _wstat32 を使用している場合を除き、1970年1月1日午前0時に、23:59:59 年12月 31 3000 日より前の時刻に表すことができます。または、を定義している場合は、日付を2038年1月18日23:59:59 までに表されます。The date stamp on a file can be represented if it is later than midnight, January 1, 1970, and before 23:59:59, December 31, 3000, UTC, unless you use _stat32 or _wstat32, or have defined _USE_32BIT_TIME_T, in which case the date can be represented only until 23:59:59 January 18, 2038, UTC.

RemarksRemarks

_Stat関数は、 pathによって指定されたファイルまたはディレクトリに関する情報を取得し、 bufferによって示される構造体に格納します。The _stat function obtains information about the file or directory specified by path and stores it in the structure pointed to by buffer. _statは、現在使用中のマルチバイトコードページに従ってマルチバイト文字シーケンスを認識し、マルチバイト文字列の引数を適切な方法で自動的に処理します。_stat automatically handles multibyte-character string arguments as appropriate, recognizing multibyte-character sequences according to the multibyte code page currently in use.

_wstatは、 _statのワイド文字バージョンです。 _wstatへのパス引数は、ワイド文字列です。_wstat is a wide-character version of _stat; the path argument to _wstat is a wide-character string. _wstat_statは、 _wstatがマルチバイト文字列を処理しない点を除いて、同じように動作します。_wstat and _stat behave identically except that _wstat does not handle multibyte-character strings.

これらの関数のバリエーションは、32 ビットや 64 ビットの時刻型と、32 ビットや 64 ビットのファイル長をサポートします。Variations of these functions support 32- or 64-bit time types, and 32- 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.

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

注意

_wstatは、Windows Vista のシンボリックリンクでは機能しません。_wstat does not work with Windows Vista symbolic links. このような場合、 _wstatは常に0のファイルサイズを報告します。In these cases, _wstat will always report a file size of 0. _statは、シンボリックリンクで正しく機能します。_stat does work correctly with symbolic links.

この関数は、パラメーターを検証します。This function validates its parameters. パスまたはバッファーのいずれかがNULLの場合は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーが呼び出されます。If either path or buffer is NULL, the invalid parameter handler is invoked, as described in Parameter Validation.

_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
_stat_wstat_stat, _wstat 未定義Not defined 64 ビット64-bit 32 ビット32-bit
_stat_wstat_stat, _wstat 定義済みDefined 32 ビット32-bit 32 ビット32-bit
stat32_wstat32_stat32, _wstat32 マクロ定義の影響を受けないNot affected by the macro definition 32 ビット32-bit 32 ビット32-bit
stat64_wstat64_stat64, _wstat64 マクロ定義の影響を受けないNot affected by the macro definition 64 ビット64-bit 64 ビット64-bit
_stati64_wstati64_stati64, _wstati64 未定義Not defined 64 ビット64-bit 64 ビット64-bit
_stati64_wstati64_stati64, _wstati64 定義済みDefined 32 ビット32-bit 64 ビット64-bit
_stat32i64_wstat32i64_stat32i64, _wstat32i64 マクロ定義の影響を受けないNot affected by the macro definition 32 ビット32-bit 64 ビット64-bit
stat64i32_wstat64i32_stat64i32, _wstat64i32 マクロ定義の影響を受けないNot affected by the macro definition 64 ビット64-bit 32 ビット32-bit

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tstat_tstat _stat_stat _stat_stat _wstat_wstat
_tstat64_tstat64 _stat64_stat64 _stat64_stat64 _wstat64_wstat64
_tstati64_tstati64 _stati64_stati64 _stati64_stati64 _wstati64_wstati64
_tstat32i64_tstat32i64 _stat32i64_stat32i64 _stat32i64_stat32i64 _wstat32i64_wstat32i64
_tstat64i32_tstat64i32 _stat64i32_stat64i32 _stat64i32_stat64i32 _wstat64i32_wstat64i32

Sys_statで定義されている構造体。H には、次のフィールドが含まれています。The _stat structure, defined in SYS\STAT.H, includes the following fields.

フィールドField
st_gidst_gid ファイル (UNIX 固有) を所有するグループの数値 ID。Windows システムでは、このフィールドは常に 0 になります。Numeric identifier of group that owns the file (UNIX-specific) This field will always be zero on Windows systems. リダイレクトされたファイルは、Windows ファイルとして分類されます。A redirected file is classified as a Windows file.
st_atimest_atime ファイルに最後にアクセスした時刻。Time of last access of file. NTFS では有効ですが、FAT 形式のディスク ドライブでは無効です。Valid on NTFS but not on FAT formatted disk drives.
st_ctimest_ctime ファイルの作成時刻。Time of creation of file. NTFS では有効ですが、FAT 形式のディスク ドライブでは無効です。Valid on NTFS but not on FAT formatted disk drives.
st_devst_dev ファイルが格納されているディスクのドライブ番号 ( st_rdevと同じ)。Drive number of the disk containing the file (same as st_rdev).
st_inost_ino ファイルの情報ノード ( inode) の番号 (UNIX 固有)。Number of the information node (the inode) for the file (UNIX-specific). UNIX ファイルシステムでは、ファイルの日付と時刻のスタンプ、アクセス許可、およびコンテンツがinodeによって記述されます。On UNIX file systems, the inode describes the file date and time stamps, permissions, and content. ファイルが互いにハードリンクされている場合は、同じinodeを共有します。When files are hard-linked to one another, they share the same inode. このため、 st_inoは FAT、HPFS、または NTFS ファイルシステムでは意味がありません。The inode, and therefore st_ino, has no meaning in the FAT, HPFS, or NTFS file systems.
st_modest_mode ファイル モード情報のビット マスク。Bit mask for file-mode information. Pathがディレクトリを指定する場合、 _S_IFDIRビットが設定されます。 _S_IFREGビットは、 pathが通常のファイルまたはデバイスを指定する場合に設定されます。The _S_IFDIR bit is set if path specifies a directory; the _S_IFREG bit is set if path specifies an ordinary file or a device. ユーザーの読み取り/書き込みビットは、ファイルのアクセス許可モードに応じて設定されます。ユーザー実行ビットは、ファイル名の拡張子に応じて設定されます。User read/write bits are set according to the file's permission mode; user execute bits are set according to the filename extension.
st_mtimest_mtime ファイルの最終変更時刻。Time of last modification of file.
st_nlinkst_nlink 非 NTFS ファイル システムでは常に 1 です。Always 1 on non-NTFS file systems.
st_rdevst_rdev ファイルが格納されているディスクのドライブ番号 ( st_devと同じ)。Drive number of the disk containing the file (same as st_dev).
st_sizest_size ファイルのサイズ (バイト単位)。i64サフィックスを持つバリエーションの64ビット整数。Size of the file in bytes; a 64-bit integer for variations with the i64 suffix.
st_uidst_uid ファイルを所有するユーザーの数値識別子 (UNIX 固有)。Numeric identifier of user who owns file (UNIX-specific). Windows システムでは、このフィールドは常に 0 です。This field will always be zero on Windows systems. リダイレクトされたファイルは、Windows ファイルとして分類されます。A redirected file is classified as a Windows file.

パスがデバイスを参照している場合、 _stat構造のst_size、さまざまな time フィールド、 st_dev、およびst_rdevフィールドは無意味です。If path refers to a device, the st_size, various time fields, st_dev, and st_rdev fields in the _stat structure are meaningless. STAT.H はTYPES.Hで定義される _dev_t 型を使用するため、コードで STAT.H の前に ES.H を組み込む必要があります。Because STAT.H uses the _dev_t type that is defined in TYPES.H, you must include TYPES.H before STAT.H in your code.

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header 省略可能なヘッダーOptional headers
_statstat32stat64_stati64_stat32i64stat64i32_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32 <sys/types.h>、その後に <sys/stat.h><sys/types.h> followed by <sys/stat.h> <errno.h><errno.h>
_wstat_wstat32_wstat64_wstati64_wstat32i64_wstat64i32_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32 <sys/types.h>、その後に <sys/stat.h> または <wchar.h><sys/types.h> followed by <sys/stat.h> or <wchar.h> <errno.h><errno.h>

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

Example

// 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 );
   }
}
File size     : 732
Drive         : C:
Time modified : Thu Feb 07 14:39:36 2002

関連項目See also

ファイル処理File Handling
_access、_waccess_access, _waccess
_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
_getmbcp_getmbcp
_setmbcp_setmbcp