Her dosyanın kendisiyle ilgili üç zaman damgası vardır: erişim zamanı, değişiklik zamanı ve öznitelik değişiklik zamanı; bkz. Dosya Öznitelikleri.
Bu zamanların hepsi mutlak zaman biçiminde gösterilen time_t türünde nesnelerdir. Bu veri türü time.h başlık dosyasında tanımlanmıştır. Zaman değerlerinin gösterilmesi ve değiştirilmesi hakkında daha fazla bilgi için Mutlak Zaman bölümüne bakınız.
Bir dosyanın okunması erişim zamanını güncellerken, yazılması değişiklik zamanını günceller. Dosya oluşturulduğu zaman, üç zaman damgasına da dosyanın oluşturulduğu zaman değeri atanır. Ek olarak, yeni girdiyi içeren dizinin erişim ve değişiklik zamanı da güncellenir.
link ile bir dosyaya yeni isim eklenmesi, isim eklenen dosyanın öznitelik değişiklik zamanını günceller ve bu yeni ismi içeren dizinin öznitelik ve içerik değişiklik zamanları da güncellenir. unlink, remove veya rmdir ile dosya isminin silinmesi de aynı alanları etkiler. Bir dosyanın isminin rename ile değiştirilmesi sadece bu değişiklikten etkilenen iki dizinin içerik ve öznitelik değişiklik zamanlarını günceller, ismi değiştirilen dosyada zaman güncellemesi yapılmaz.
Bir dosyanın özniteliklerinin değiştirilmesi (örn, chmod ile), öznitelik değişiklik zamanını günceller.
Öznitelik değişiklik zamanı dışında bir dosyanın değişiklik zamanlarını utime işleviyle doğrudan değiştirebilirsiniz. Bu oluşumu yazılımınızda kullanmak için yazılımınıza utime.h başlık dosyasını dahil etmelisiniz.
utimbuf yapısı bir dosyaya yeni erişim ve değişiklik zamanlarını belirtmek için utime işlevi ile kullanılır. Şu üyeleri içerir:
Dosyanın erişim zamanı.
Dosyanın (içerik) değişiklik zamanı.
(const char           *dosyaismi,
const struct utimbuf *zamanlar)
Bu işlev ismi dosyaismi ile belirtilen dosyanın dosya zamanlarını değiştirir.
Eğer zamanlar bir boş gösterici ise, dosyanın erişim ve değişiklik zamanları güncellenir. Aksi takdirde, zaman damgalarına zamanlar ile gösterilen utimbuf yapısının actime ve modtime üyelerindeki değerler atanır.
Her durumda dosyanın öznitelik değişiklik zamanı güncellenir (çünkü dosyanın zaman ile ilgili öznitelikleri değişmiştir).
zamanlar argümanında boş gösterici aktarıldığı durumda bir izin sorunu var. Dosya zaman damgalarını güncelleyebilmek için ya dosyanın sahibi ya da ayrıcalıklı kullanıcı olmalısınız.
Eğer zamanlar argümanı boş gösterci değilse ya dosyanın sahibi ya da ayrıcalıklı kullanıcı olmalısınız.
Her üç zaman damgasınında çözünürlüğü arttıran mikrosaniyelik bir parçası vardır. Bu alanlar 0 ile 999,999 mikrosaniye arasında değer alabilen üç alanla ifade edilir: st_atime_usec, st_mtime_usec ve st_ctime_usec. Bu alanlar bir timeval yapısının tv_usec üyesine karşılıktır; bkz. Yüksek Çözünürlüklü Zaman.
utimes işlevi utime işlevi gibidir, ancak dosya zamanlarının ondalık kısımlarını da belirtebilmenizi sağlar. Bu işlevin prototipi sys/time.h başlık dosyasında bulunur.
struct timeval zaman)
Bu işlev ismi dosyaismi ile belirtilen dosyanın erişim ve değişiklik zamanlarını değiştirir. Yeni dosya erişim zamanı zaman ile ve yeni değişiklik zamanı zaman ile belirtilir. zaman olarak bir boş gösterici belirtilirse utime işlevi gibi dosyanın erişim ve değişiklik zamanlarını günceller. Bu işlev BSD'den gelmektedir.
İşlevin dönüş değerleri ve hata durumları utime işlevininkilerle aynıdır.
Bu işlev utimes gibi olmakla birlikte sembolik bağları izlemez. utimes işlevi bir sembolik bağın hedefindeki dosyanın erişim ve değişiklik zamanlarını değiştirdiği halde, lutimes işlevi (lstat gibi; Sembolik Bağlar) sembolik bağ dosyasının kendi erişim ve değişiklik zamanlarını değiştirir. Bu işlev BSD'den gelmektedir ve tüm platformlarca desteklenmemektedir (desteklenmiyorsa, işlev ENOSYS hatasıyla başarısız olur).
Bu işlev utimes gibidir, ancak argüman olarak dosya ismi yerine bir açık dosya tanıtıcısı alır. Bu işlev BSD'den gelmektedir ve tüm platformlarca desteklenmemektedir (desteklenmiyorsa, işlev ENOSYS hatasıyla başarısız olur).
utimes gibi, futimes işlevi de başarılı olduğunda 0 ile aksi takdirde -1 ile döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
zamanlar argümanındaa boş gösterici aktarıldığı durumda bir izin sorunu var. Dosya zaman damgalarını güncelleyebilmek için ya dosyanın sahibi ya da ayrıcalıklı kullanıcı olmalısınız.
Dosya Erişim İzinlerinin Sınanması Başlangıç Dosya Boyu