php如果2个人同时追加会怎么样?

时间:2011-01-20 22:15:51

标签: php

  

可能重复:
  PHP Simultaneous File Writes

您好,

如果我有一个php脚本和一个文本文件,并且有两个用户同时在文本文件中附加一个长文本字符串,会发生什么?还会经历吗?它是否被缓冲,因此两者都被附加,或者它们被删除了吗?

3 个答案:

答案 0 :(得分:0)

通过将fopenc模式参数一起使用,您可以强制文件锁定,直到您fclose该文件为止。这将禁止不止一个人同时写入该文件。通常,文件系统默认会执行此操作(取决于操作系统配置),但是,使用mode参数将覆盖您的基础。

PHP: fopen

答案 1 :(得分:0)

细节将取决于所写数据的平台和大小,但如果两个进程都在文件中的相同位置开始写入,那么最后一个通常会胜出。但是,您最终也可以交叉数据,特别是在一次写入大量数据时。

看看flock()。操作系统并不完全“为你做”。

答案 2 :(得分:-1)

通常操作系统会在写入期间锁定文件,因此其他进程必须等待此写入过程完成才能开始写入。

因此,在fopen()期间,它应该在一个客户端或PHP警告/错误上造成延迟。取决于代码的工作原理以及您正在使用的功能。