_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 は32 ビットと 64 ビットの時刻型の使用を除きそれぞれ _utimbuf と同じです。_futime と _utimbuf は 64 ビットの時刻型を使用して_futime は _futime64 と同じ動作です。古い動作を強制的に実行する必要がある場合 _USE_32BIT_TIME_T を定義します。これを行うには _futime32 に _futime の動作は同じになり_utimbuf の構造に __utimbuf32 と同じにする 32 ビットの時刻型を使用します。
_futime64 は 23:59 で __utimbuf64 構造を使用するファイルの日付を読み取って変更できます : 593000 12 年 1 月 31 日(UTC); ファイルの日付が 19:14 よりも新しい場合は _futime32 の呼び出しが失敗する場合 : 1 年 1 月 07 日 18 時 2038 の UTC。は1970 年が 1 年 1 月 1 日これらの関数の日付範囲の下限はです。
必要条件
Function |
必須ヘッダー |
オプション ヘッダー |
---|---|---|
_futime |
<sys/utime.h> |
<errno.h> |
_futime32 |
<sys/utime.h> |
<errno.h> |
_futime64 |
<sys/utime.h> |
<errno.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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" );
}
型 : 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