首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测当前是否正在读取文件。

问检测当前是否正在读取文件。
EN

Stack Overflow用户
提问于 2012-04-29 17:40:52
回答 1查看 70关注 0票数 0

我正在编写一些使用libonion库的东西,这个库是多线程的,我只是想知道如何检测声明的任何文件指针当前是否正在被任何其他线程读取。

(基本上,我想要创建手动处理的临时文件,如果没有人从这些文件中读取,就将其删除。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-29 18:05:58

文件指针只是指向文件资源的指针,而其他线程是否正在读取它不能通过查看指针来确定。您可能需要在文件指针旁边声明互斥锁和全局锁计数。当任何线程打算读取它时,它都可以获得互斥锁上的共享锁,增加锁计数,当线程不打算进一步读取文件时,在减少锁计数后释放锁计数。

您可以查询此锁计数,以查看该值是否为零,在这种情况下,您可以安全地释放它。

还要注意,由于这个锁计数是全局的,并且您可能会处于竞争状态,所以读取和更新锁计数变量应该是独占的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10374376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档