gpt4 book ai didi

c - 多线程独占访问文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:58:26 24 4
gpt4 key购买 nike

我有一个程序有两个线程同时运行(主线程和一个 pthread)。该程序管理本地文件夹中的文件缓存。线程执行以下任务:

  • 线程 0 可以从缓存中读取文件并将文件下载到缓存中;
  • 线程 1 可以读取和写入缓存中的文件。

这意味着我需要确保对缓存中的每个文件进行独占访问。问题是,我不知道该怎么做!

为缓存中的每个文件创建一个互斥锁显然是可行的,但是文件的绝对数量使得这个选项望而却步。使用 flockfile 和 funlockfile 似乎是我最好的选择,但是使用这些函数不会迫使我为缓存中的每个文件都设置文件描述符吗?也就是说,我不需要先 fopen 缓存中的所有文件,然后将生成的文件描述符保存在两个线程都可以访问的缓冲区中吗?

最佳答案

要访问您需要打开的文件。

flockfile()funlockfile() 的调用只需放置在对文件执行 I/O 的调用“周围”。

关于c - 多线程独占访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com