次の方法で共有


_utime、_utime32、_utime64、_wutime、_wutime32、_wutime64

ファイル変更時刻を設定します。

int _utime(
   const char *filename,
   struct _utimbuf *times 
);
int _utime32(
   const char *filename,
   struct __utimbuf32 *times 
);
int _utime64(
   const char *filename,
   struct __utimbuf64 *times 
);
int _wutime(
   const wchar_t *filename,
   struct _utimbuf *times 
);
int _wutime32(
   const wchar_t *filename,
   struct __utimbuf32 *times 
);
int _wutime64(
   const wchar_t *filename,
   struct __utimbuf64 *times 
);

パラメーター

  • filename
    パスまたはファイル名を含む文字列へのポインター。

  • times
    格納されている時刻の値へのポインター。

戻り値

これらの関数は、ファイルの変更時刻を変更した場合は 0 を返します。 –1 の戻り値はエラーを示します。 無効なパラメーターが渡されると、無効なパラメーター ハンドラーが パラメーターの検証"に説明されているように、呼び出されます。 実行の継続が許可された場合、これらの関数は -1 を返し、errno は次の値の 1 に設定されています:

  • EACCES
    パスがディレクトリまたは読み取り専用ファイルを指定します。

  • EINVAL
    times の引数が無効です。

  • EMFILE
    あまり多くのファイル (変更時刻を変更するために開く必要)

  • ENOENT
    パスまたはファイル名。

リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。

日付はの前に変更日が午前 1970 年 1 月 1 日 1 時の後にある場合は、使用する関数の終了日ことができますが、ファイルごとに変更できます。 _utime と _wutime は 64 ビットの時刻の値を使用するため、終了日が 23:59: 59、3000 12 年 10 月 31 日は、UTC。 古い動作を強制的に _USE_32BIT_TIME_T が定義されている場合、終了日が 03:14: 1 年 1 月 07 日 19 時 2038、UTC。 _USE_32BIT_TIME_T が定義されているかどうか_utime32 または _wutime32 の使用は 32 ビットの時刻型に関係なく、以前終了日を常にあります。 _utime64 または常に _wutime64 の使用は 64 ビットの時刻型、この関数で、終了日を常にサポートします。

解説

ファイルの変更時刻を filenameで指定した_utime 関数のセット*。*プロセスは時間を変更するには、ファイルに対する書き込みアクセスが必要です。 Windows オペレーティング システムでは、_utimbuf 構造体のアクセス時刻および更新時刻を変更できます。 times が NULL のポインターの場合、時刻は、現在の現地時刻に設定されます。 それ以外の場合は times は SYS\UTIME.H.で定義されている型 _utimbuf構造体を指す必要があります。

_utimbuf 構造体のストアは _utime で使用される変更の変更日ファイルへのアクセス時刻および変更時刻を格納します。 構造体の型 time_tの両方で、次のフィールドがあり、:

  • actime
    ファイル アクセス時間

  • modtime
    ファイルの変更時

_utimbuf 構造の特定のバージョンは時刻型の 32 ビット バージョンと 64 ビット バージョンを使用して (_utimebuf32 と __utimbuf64) で定義されます。 これらは次の 32 ビット バージョンと 64 ビット バージョンの特定の関数で使用されます。 _USE_32BIT_TIME_T が定義されていない場合_utimbuf 自体は既定で 64 ビットの時刻型を使用します。

_utime は _futime と同じですが、_utime の filename の引数は、開いているファイルのファイル記述子ではなくファイルへのファイル名またはパスです。

_wutime 関数は、_utime 関数のワイド文字バージョンです。_wutime 関数の引数 filename は、ワイド文字列です。 それ以外では、これらの関数の動作は同じです。

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン

_UNICODE & _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tutime

_utime

_utime

_wutime

_tutime32

_utime32

_utime32

_wutime32

_tutime64

_utime64

_utime64

_wutime64

必要条件

ルーチン

必須のヘッダー

省略可能なヘッダー

_utime, _utime32, _utime64

<sys/utime.h>

<errno.h>

_utime64

<sys/utime.h>

<errno.h>

_wutime

<utime.h または> wchar.h <>

<errno.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

このプログラムは、現在の時刻にファイルの変更時刻を設定するには _utime を使用します。

// crt_utime.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/utime.h>
#include <time.h>

int main( void )
{
   struct tm tma = {0}, tmm = {0};
   struct _utimbuf ut;

   // Fill out the accessed time structure
   tma.tm_hour = 12;
   tma.tm_isdst = 0;
   tma.tm_mday = 15;
   tma.tm_min = 0;
   tma.tm_mon = 0;
   tma.tm_sec = 0;
   tma.tm_year = 103;

   // Fill out the modified time structure
   tmm.tm_hour = 12;
   tmm.tm_isdst = 0;
   tmm.tm_mday = 15;
   tmm.tm_min = 0;
   tmm.tm_mon = 0;
   tmm.tm_sec = 0;
   tmm.tm_year = 102;

   // Convert tm to time_t
   ut.actime = mktime(&tma);
   ut.modtime = mktime(&tmm);

   // Show file time before and after
   system( "dir crt_utime.c" );
   if( _utime( "crt_utime.c", &ut ) == -1 )
      perror( "_utime failed\n" );
   else
      printf( "File time modified\n" );
   system( "dir crt_utime.c" );
}

出力例

Volume in drive C has no label.
 Volume Serial Number is 9CAC-DE74

 Directory of C:\test

01/09/2003  05:38 PM               935 crt_utime.c
               1 File(s)            935 bytes
               0 Dir(s)  20,742,955,008 bytes free
File time modified
 Volume in drive C has no label.
 Volume Serial Number is 9CAC-DE74

 Directory of C:\test

01/15/2002  12:00 PM               935 crt_utime.c
               1 File(s)            935 bytes
               0 Dir(s)  20,742,955,008 bytes free

同等の .NET Framework 関数

使用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

時間管理

asctime、_wasctime

ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64

_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32

_ftime、_ftime32、_ftime64

_futime、_futime32、_futime64

gmtime、_gmtime32、_gmtime64

localtime、_localtime32、_localtime64

_stat、_wstat 関数

time、_time32、_time64