Nowe posty

Autor Wątek: zmiana atime bez zmiany ctime  (Przeczytany 2708 razy)

Teom

  • Gość
zmiana atime bez zmiany ctime
« dnia: 2009-04-27, 20:19:55 »
Witam.

Sytuacja wyglada nastepujaco, w inodzie przechowywane sa 3 czasy, access time, modify time i change time. Gdzie nie zajrze dowiaduje sie, ze change time jest czasem ostatniej zmiany zawartosci inoda.
Sprawdzam

 teom@tnagorn-SLES10:~/dir1> touch plik
teom@tnagorn-SLES10:~/dir1> stat plik
  File: `plik'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 123287      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    teom)   Gid: (  100/   users)
Access: 2009-04-27 20:14:24.000000000 +0200
Modify: 2009-04-27 20:14:24.000000000 +0200
Change: 2009-04-27 20:14:24.000000000 +0200
teom@tnagorn-SLES10:~/dir1> touch -a plik
teom@tnagorn-SLES10:~/dir1> stat plik
  File: `plik'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 123287      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    teom)   Gid: (  100/   users)
Access: 2009-04-27 20:14:50.000000000 +0200
Modify: 2009-04-27 20:14:24.000000000 +0200
Change: 2009-04-27 20:14:50.000000000 +0200
teom@tnagorn-SLES10:~/dir1>

Czyli wszystko sie zgadza, zmienilem czas dostepu a zatem zawartosc inoda i zmienil sie czas jego ostatniej zawartosci.
Ale wykonuje....

teom@tnagorn-SLES10:~/dir1> cat plik
teom@tnagorn-SLES10:~/dir1> stat plik
  File: `plik'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 123287      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    teom)   Gid: (  100/   users)
Access: 2009-04-27 20:18:04.000000000 +0200
Modify: 2009-04-27 20:14:24.000000000 +0200
Change: 2009-04-27 20:14:50.000000000 +0200
teom@tnagorn-SLES10:~/dir1>

I jak widac, access time sie zmienil, ale change time juz nie... ktos cos podpowie?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3066
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
zmiana atime bez zmiany ctime
« Odpowiedź #1 dnia: 2009-04-27, 20:42:35 »
A która z instrukcji cat/stat modyfikuje plik, że się tak zapytam?
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Teom

  • Gość
zmiana atime bez zmiany ctime
« Odpowiedź #2 dnia: 2009-04-27, 20:55:13 »
Z tego co sie orientuje instrukcja cat odczytuje zawartosc pliku wywolujac funkcje systemowe open i read i podczas tej ostatniej modyfikuje access time.
Sama zawartosc pliku nie jest modyfikowana ale modyfikowany jest wpis w inod czyli sama zawartosc inoda. Przykladem tego jest touch -a. Z tym, ze atime zmieniony przez touch -a wplywa na ctime natomiast atime zmieniony przez cat juz nie...