_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64

Atur waktu modifikasi file.

Sintaks

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
);

Parameter

filename
Penunjuk ke string yang berisi jalur atau nama file.

times
Penunjuk ke nilai waktu tersimpan.

Nilai hasil

Masing-masing fungsi ini mengembalikan 0 jika waktu modifikasi file diubah. Nilai pengembalian -1 menunjukkan kesalahan. Jika parameter yang tidak valid diteruskan, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan -1, dan errno diatur ke salah satu nilai berikut:

errno nilai Kondisi
EACCES Jalur menentukan file direktori atau baca-saja
EINVAL Argumen tidak valid times
EMFILE Terlalu banyak file terbuka (file harus dibuka untuk mengubah waktu modifikasinya)
ENOENT Jalur atau nama file tidak ditemukan

Untuk informasi selengkapnya tentang kode pengembalian, lihat errno, , _doserrno_sys_errlist, dan _sys_nerr.

Tanggal dapat diubah untuk file jika tanggal perubahan setelah tengah malam, 1 Januari 1970, dan sebelum tanggal akhir fungsi yang digunakan. _utime dan _wutime gunakan nilai waktu 64-bit, sehingga tanggal akhir adalah 23:59:59, 31 Desember 3000, UTC. Jika _USE_32BIT_TIME_T didefinisikan untuk memaksa perilaku lama, tanggal akhir adalah 23:59:59 18 Januari 2038, UTC. _utime32 atau _wutime32 gunakan jenis waktu 32-bit terlepas dari apakah _USE_32BIT_TIME_T ditentukan, dan selalu memiliki tanggal akhir sebelumnya. _utime64 atau _wutime64 selalu gunakan jenis waktu 64-bit, sehingga fungsi-fungsi ini selalu mendukung tanggal akhir yang lebih baru.

Keterangan

Fungsi _utime mengatur waktu modifikasi untuk file yang ditentukan oleh filename. Proses harus memiliki akses tulis ke file untuk mengubah waktu. Dalam sistem operasi Windows, Anda dapat mengubah waktu akses dan waktu modifikasi dalam _utimbuf struktur. Jika times adalah NULL penunjuk, waktu modifikasi diatur ke waktu lokal saat ini. Jika tidak, times harus menunjuk ke struktur jenis _utimbuf, yang ditentukan dalam SYS\UTIME.H.

Struktur _utimbuf menyimpan waktu akses dan modifikasi file yang digunakan oleh _utime untuk mengubah tanggal modifikasi file. Struktur memiliki bidang berikut, yang keduanya berjenis time_t:

Bidang Deskripsi
actime Waktu akses file
modtime Waktu modifikasi file

Versi _utimbuf struktur tertentu (__utimbuf32 dan __utimbuf64) didefinisikan menggunakan versi 32-bit dan 64-bit dari jenis waktu. Struktur ini digunakan dalam versi spesifik 32-bit dan 64-bit dari fungsi ini. _utimbuf sendiri secara default menggunakan jenis waktu 64-bit kecuali _USE_32BIT_TIME_T ditentukan.

_utime identik dengan _futime kecuali bahwa filename argumen _utime adalah nama file atau jalur ke file, bukan pendeskripsi file dari file yang terbuka.

_wutime adalah versi karakter luas dari _utime; filename argumen ke _wutime adalah string karakter lebar. Fungsi-fungsi ini berulah secara identik jika tidak.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Pemetaan rutin teks generik

TCHAR. Rutinitas H _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tutime _utime _utime _wutime
_tutime32 _utime32 _utime32 _wutime32
_tutime64 _utime64 _utime64 _wutime64

Persyaratan

Rutin Header wajib Header opsional
_utime, _utime32, _utime64 <sys/utime.h> <errno.h>
_utime64 <sys/utime.h> <errno.h>
_wutime <utime.h> atau <wchar.h> <errno.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

Program ini menggunakan _utime untuk menyetel waktu modifikasi berkas ke waktu saat ini.

// 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" );
}

Sampel output

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

Baca juga

Manajemen waktu
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 fungsi
time, _time32, _time64