您好,
如果我有一个php脚本和一个文本文件,并且有两个用户同时在文本文件中附加一个长文本字符串,会发生什么?还会经历吗?它是否被缓冲,因此两者都被附加,或者它们被删除了吗?
答案 0 :(得分:0)
通过将fopen
与c
模式参数一起使用,您可以强制文件锁定,直到您fclose
该文件为止。这将禁止不止一个人同时写入该文件。通常,文件系统默认会执行此操作(取决于操作系统配置),但是,使用mode参数将覆盖您的基础。
答案 1 :(得分:0)
细节将取决于所写数据的平台和大小,但如果两个进程都在文件中的相同位置开始写入,那么最后一个通常会胜出。但是,您最终也可以交叉数据,特别是在一次写入大量数据时。
看看flock()。操作系统并不完全“为你做”。
答案 2 :(得分:-1)
通常操作系统会在写入期间锁定文件,因此其他进程必须等待此写入过程完成才能开始写入。
因此,在fopen()期间,它应该在一个客户端或PHP警告/错误上造成延迟。取决于代码的工作原理以及您正在使用的功能。