_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 в этом случае.

ПримечаниеПримечание

If path содержит расположение каталога, он не может содержать обратную косую черту) в конце.Если он заставляет, то будет возвращено -1 и errno будет присвоено ENOENT.

См. _doserrno, errno, _sys_errlist и _sys_nerr дополнительные сведения об этом и других, кодов возврата.

Отметку даты в файле могут быть представлены в том случае, если она больше чем полуночи 1-ое января 1970 и до 23:59: 59 - 31-ое декабря 3000 - время в формате UTC, если не используется _stat32 OR _wstat32выберите или определите _USE_32BIT_TIME_Tв этом случае дату может представлять только до 03:14: 7-ое января 19, 2038 В формате UTC.

Заметки

_stat функция возвращает сведения о файле или каталоге, определенных by path и сохраняет его в указанной структуре, к которым следуют buffer._stat автоматически обрабатывает аргументы характерной черты, узнающ последовательности многобайтового символов в соответствии с многобайтовой кодовой странице в настоящий момент используется.

_wstat версия расширенных символов _stat; path аргумент _wstat строка символов._wstat и _stat поступайте идентичны за исключением того, что _wstat не обрабатывает характерные черты.

Изменения этих функций поддерживают 32 - 64 (sp2) типы или времени, а 32 - 64 (sp2) длины или файла.Первый числовой суффикс (32 OR 64) показывает размер типа используемого времени; суффикс то второй i32 OR i64отображает представлен ли размер файла, например 32 или 64 целое число.

_stat равно _stat64i32и struct_stat содержит 64 раз.Это значение true, если _USE_32BIT_TIME_T определяет, и в этом случае старая функциональности в результате; _stat использует время и с пакетом обновления 32 (sp2) struct_stat содержит 32 раз.Это также относится к _stati64.

ПримечаниеПримечание

_wstat не работает с Windows Vista символьные ссылки.В этих случаях _wstat всегда сообщит размер файла 0._stat правильность работы с символьными ссылка.

Эта функция проверяет его параметры.Если такой path OR buffer существует NULLнедопустимый параметр, обработчик вызывается, как описано в разделе Проверка параметров.

Время изменения типа и длины файла _stat

Функции

Указанный _USE_32BIT_TIME_T?

Тип Time

Тип длины файла

_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

_MBCS не заданные _UNICODE &

Указанный символ _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-специфический) это поле всегда будет равно нулю, в системах 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
    Всегда 1 в файловых системах non-NTFS.

  • st_rdev
    Номер диска диска, содержащий файл (аналогично st_dev).

  • st_size
    Размер файла в байтах. 64 - целое число для изменений с помощью i64 суффикс**.**

  • st_uid
    Числовой идентификатор пользователя, который имеет файл (UNIX-специфический).Это поле всегда будет равно нулю, в системах windows.Охваченного файл получает оценку в виде файла windows.

If path относится к устройству, st_sizeразличные поля времени st_devи st_rdev поля _stat структура несмыслова.Поскольку STAT.H использует _dev_t тип, в TYPES.H, необходимо включить TYPES.H перед STAT.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> OR <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

См. также

Ссылки

Обработка файла

_access, _waccess

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_getmbcp

_setmbcp