file_put_contents($file、$data、FILE_APPEND)是否保证添加/完成


Is file_put_contents($file, $data, FILE_APPEND) guaranteed to add/complete?

$result = file_put_contents($file, $data, FILE_APPEND);
if ($result === false) {
    echo "This should never happen";
}

当然,没有什么是可以保证的,但是如果我在每个请求中使用上述内容来记录某些内容,它们会全部完成吗?

忽略硬件和配置问题,这不是我关心的问题。

我关心的是PHP如何如此频繁地处理对一个文件的写入。

如果我每秒有数千个请求怎么办?

我不想要任何形式的文件锁定,我希望每个函数调用都注册并附加到一个文件中。

问这个问题的正确方法:file_put_contents保证是原子的吗?

几乎可以肯定不是,因为你可以写一些相当大的条纹。您将需要使用 flock((,或者使用更专业的日志记录系统。