在 Linux 系统上(我面前的是 Ubuntu 10.04,但这并不重要),我如何判断同一秒内创建的两个文件中哪一个是先创建的?我控制的过程本身既不创造任何东西,也不创造任何东西。我认为,在所有其他方面,ctime 都可以解决问题,但 1 秒的分辨率是一个问题。
对于背景,我正在尝试可靠地确定可能过时的 pidfile 是否引用具有该 pid 的当前进程。如果有更好的方法可以做到这一点,我洗耳恭听。
最佳答案
实际上,在具有现代文件系统的现代 Unices 上,文件修改时间存储在 timespec 中。详情:
The standard说 stat
看起来像这样的 WRT 时间:
struct timespec st_atim Last data access timestamp.
struct timespec st_mtim Last data modification timestamp.
struct timespec st_ctim Last file status change timestamp.
还有一个timespec
time_t tv_sec seconds
long tv_nsec nanoseconds
因此,在我的 Linux 2.6.39 上进行统计:
Access: 2011-07-14 15:38:20.016666721 +0300
Modify: 2011-06-10 03:06:12.000000000 +0300
Change: 2011-06-17 11:01:35.416667110 +0300
总之,我认为如果硬件能够提供足够的精度。
关于linux - 如何判断哪个文件首先创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693172/