linux - 如何判断哪个文件首先创建?

标签 linux pid ctime

在 Linux 系统上(我面前的是 Ubuntu 10.04,但这并不重要),我如何判断同一秒内创建的两个文件中哪一个是先创建的?我控制的过程本身既不创造任何东西,也不创造任何东西。我认为,在所有其他方面,ctime 都可以解决问题,但 1 秒的分辨率是一个问题。

对于背景,我正在尝试可靠地确定可能过时的 pidfile 是否引用具有该 pid 的当前进程。如果有更好的方法可以做到这一点,我洗耳恭听。

最佳答案

实际上,在具有现代文件系统的现代 Unices 上,文件修改时间存储在 timespec 中。详情:

The standardstat 看起来像这样的 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/

相关文章:

用于查找文件名中特定单词的 linux 脚本

c - 如何计算 linux 中两个二进制文件(即两个可执行文件)之间的差异

linux - 如何在文件夹中的数千个文件中查找丢失的文件(日期)?

c - 知道pid时如何在C中终止进程

c++ - 如何使用 C/C++ 在 Linux 中通过提供进程 ID 来获取父进程 ID?

C++ 和 mktime : 26/6/1943 and 27/6/1943 are the same day

javascript - 我怎样才能让它工作。我尝试授予 sudo 权限

java - 如何在没有 Java 9+ 非法访问警告的情况下从进程获取 pid?

c++ - c++ : to store MM in int format from ctime() 中的字符串问题

C++ - 'localtime' 此函数或变量可能不安全