在 Linux 内核上,像 BTRFS、BcacheFS 等 COW 文件系统,inode 号码不能用于确定某事物是否为同一个文件。
这是故意的。
(PHP 4, PHP 5, PHP 7, PHP 8)
fileinode — 获取文件 inode
filename
文件路径。
返回文件的 inode 号,如果失败则返回 false
。
如果失败,将发出 E_WARNING
。
示例 #1 比较文件与当前文件的 inode
<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
echo '您正在检查当前文件。';
}
?>
注意: 此函数的结果被缓存。有关详细信息,请参阅 clearstatcache()。
在 Linux 内核上,像 BTRFS、BcacheFS 等 COW 文件系统,inode 号码不能用于确定某事物是否为同一个文件。
这是故意的。
如 https://php.net/manual/en/function.stat.php#refsect1-function.stat-returnvalues: 中所述:
> 在 Windows 上,从 PHP 7.4.0 开始,这是与文件关联的标识符,它是一个 64 位无符号整数,因此可能会溢出。以前,它始终为 0。
看来 fileinode 共享相同的底层实现。