[Tech] ctimeはchange timeだった!(実はファイルシステムによって略)

こんばんは。
ようやくヘルペスが治ってきたおじいさんです。一息って感じ。
で、今日は知っている人ならば、常識の話。Linuxでファイルシステムのctimeについて。

えーっと、Linuxのファイルシステムでは、以下の時刻が記録されています。
 ・mtime
 ・atime
 ・ctime
さて、これのそれぞれについて。
mtimeはmodify timeで変更時刻というのはわかります。
atimeはaccess timeでファイルに対するアクセス時刻です。
で、ctimeですが、おじいさんはctimeをcreate timeだと思ってました。
はい。

答え

 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/stat.2.html


struct stat {
dev_t st_dev; /* ファイルがあるデバイスの ID */
ino_t st_ino; /* inode 番号 */
mode_t st_mode; /* アクセス保護 */
nlink_t st_nlink; /* ハードリンクの数 */
uid_t st_uid; /* 所有者のユーザ ID */
gid_t st_gid; /* 所有者のグループ ID */
dev_t st_rdev; /* デバイス ID (特殊ファイルの場合) */
off_t st_size; /* 全体のサイズ (バイト単位) */
blksize_t st_blksize; /* ファイルシステム I/O での
ブロックサイズ */
blkcnt_t st_blocks; /* 割り当てられた 512B のブロック数 */
time_t st_atime; /* 最終アクセス時刻 */
time_t st_mtime; /* 最終修正時刻 */
time_t st_ctime; /* 最終状態変更時刻 */
};


(」゚ロ゚)」(」゚ロ゚)」(」゚ロ゚)」オオオオオッッッ

st_ctimeが、最終状態変更時刻じゃねえか!


st_ctime フィールドは書き込みや inode 情報 (所有者、グループ、リンク数、モードなど) の設定によって変更される。


まじ?
昔、時間が変更できなくて四苦八苦していた覚えがあるんですが。
いやー、そうか、そのときは過去に戻そうとして四苦八苦していたのか。そりゃもどらんわ。

なんで、create timeなんて勘違いしたんだろう?

ちなみに、Winowsの場合は以下。
http://msdn.microsoft.com/ja-jp/library/14h5k7ff.aspx

st_ctime
ファイルが作成された時刻。NTFS では有効ですが、FAT フォーマットのディスク ドライブでは無効です。


(」゚ロ゚)」(」゚ロ゚)」(」゚ロ゚)」オオオオオッッッ

st_ctimeが、作成時刻になっとる! みんなコレに惑わされとります。

てことは、ctimeは非互換って事ですか!
というか、Linuxでファイルの作成時刻を取るのは無理って事ですか。無理っぽいな。。。



ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

2009年01月08日 22:44
見た見た。
UNIXの伝統らしい、と。FreeBSDではあるのか。なるほど。情報Thxです♪

この記事へのトラックバック