次の方法で共有


_futime_futime32_futime64

開いているファイルの変更時刻を設定します。

構文

int _futime(
   int fd,
   struct _utimbuf *filetime
);
int _futime32(
   int fd,
   struct __utimbuf32 *filetime
);
int _futime64(
   int fd,
   struct __utimbuf64 *filetime
);

パラメーター

fd
開いているファイルのファイル記述子。

filetime
新しい変更日を含む構造体へのポインター。

戻り値

処理が正常に終了した場合は 0 を返します。 エラーが発生した場合は、「パラメーターの検証 で説明されているように、無効なパラメーター ハンドラーが呼び出。 実行を続行できる場合、関数は -1 を返し、 errno は無効なファイル記述子を示す EBADFに設定されるか、無効なパラメーターを示す EINVALに設定されます。

解説

_futime ルーチンは、fdに関連付けられている開いているファイルの変更日とアクセス時刻を設定します。 _futime_utimeと同じですが、引数がファイルの名前やファイルへのパスではなく、開いているファイルのファイル記述子である点が異なります。 _utimbuf 構造体には、新しい変更日とアクセス時間のフィールドが含まれています。 両方のフィールドに、有効な値が含まれている必要があります。 _utimbuf32 および _utimbuf64_utimbuf と同じですが、それぞれを 32 ビットおよび 64 ビットの時刻の型を使用する点が異なります。 _futime および _utimbuf は、64 ビット時刻型を使用し、_futime の動作は _futime64 と同じです。 古い動作を強制的に実行させる必要がある場合は、_USE_32BIT_TIME_T を定義します。 これにより、_futime の動作が _futime32 と同じになり、_utimbuf 構造帯が、32 ビットの時間型を使用し、__utimbuf32 と等しくなります。

__utimbuf64 構造体を使用する _futime64 は、UTC の 3000 年 12 月 31 日 23時 59分: 59 秒までのファイル日付を読み取りおよび変更できますが、これに対して _futime32 の呼び出しは、ファイルの日付が UTC の 2038 年 1 月 18 日 23 時 59分: 59 秒よりも後の場合は失敗します。 これらの関数の日付範囲の下限は、1970 年 1 月 1 日の午前 0 時です。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。

要件

機能 必須ヘッダー オプション ヘッダー
_futime <sys/utime.h> <errno.h>
_futime32 <sys/utime.h> <errno.h>
_futime64 <sys/utime.h> <errno.h>

互換性の詳細については、「 Compatibility」を参照してください。

// crt_futime.c
// This program uses _futime to set the
// file-modification time to the current time.

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <io.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/utime.h>
#include <share.h>

int main( void )
{
   int hFile;

   // Show file time before and after.
   system( "dir crt_futime.c_input" );

   _sopen_s( &hFile, "crt_futime.c_input", _O_RDWR, _SH_DENYNO, 0 );

   if( _futime( hFile, NULL ) == -1 )
      perror( "_futime failed\n" );
   else
      printf( "File time modified\n" );

   _close (hFile);

   system( "dir crt_futime.c_input" );
}

Input: crt_futime.c_input

Arbitrary file contents.

サンプル出力

Volume in drive Z has no label.
Volume Serial Number is 5C68-57C1

Directory of Z:\crt

03/25/2004  10:40 AM                24 crt_futime.c_input
               1 File(s)             24 bytes
               0 Dir(s)  24,268,476,416 bytes free
Volume in drive Z has no label.
Volume Serial Number is 5C68-57C1

Directory of Z:\crt

03/25/2004  10:41 AM                24 crt_futime.c_input
               1 File(s)             24 bytes
               0 Dir(s)  24,268,476,416 bytes free
File time modified

関連項目

時間管理