【问题标题】:shared file synchronization (read/write)共享文件同步(读/写)
【发布时间】:2011-09-12 07:02:58
【问题描述】:

我在 PHP 代码中写道,它将“打开”一个文件(让我们称之为 TXT)并在那里写入所选的复选框,然后另一个进程(让我们称之为 PROC1- 在 c 代码中)需要读取文件(TXT )。

我需要同步它,我的意思是阻止进程(PROC1)读取,而 PHP 写入共享资源(TXT)。

fopen 会处理它吗?我认为它和 open() 方法之间的区别..

或者也许使用 pipe(),但正如我所见,它只运行命令而不打开文件..

再次提前感谢..

【问题讨论】:

  • 第一个文件会锁定txt文件多久?几微秒还是一两个小时?
  • 如果是 IPC 工具 - 那么你应该使用管道。
  • 如何使用 pipe(),但正如我所见,它只运行命令而不是打开文件..
  • 如果您想将数据从一个进程传送到另一个进程,请查看proc_open

标签: php c linux synchronization read-write


【解决方案1】:

不,fopen 不会处理这个问题。您可以使用flock 来同步对文件的访问。

请注意,所有进程都必须在使用该文件之前对其进行flock(),这取决于平台,但flock() 通常是建议性锁,这意味着任何人都可以根据需要绕过锁(例如,如果他们忘记了调用flock())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2016-03-21
    • 2020-10-01
    • 1970-01-01
    • 2023-04-10
    • 2016-05-11
    相关资源
    最近更新 更多