c++ - sync() 调用是否会阻止所有 write()/read()/fwrite()/... 调用?
问题描述
我的应用程序是一个多线程 (pthread) c/c++ 应用程序。
出于某些原因,我必须打电话sync()
(unistd.h
调用同步会阻塞几秒钟)
另一个线程执行一些文件系统操作。(fopen、fwrite、重命名等)
我所看到的是文件系统操作在sync()
命令运行时被阻止了一段时间。
什么原因,为什么其他文件系统操作被阻止?当然 - sync 会将缓冲区同步到磁盘。恕我直言,同步时阻止写入文件系统。正确的?
我感兴趣的是:哪些电话被阻止了?同一文件系统上的文件操作?所有文件操作?所有函数都基于 Linux 系统调用?在像这样的设备上写/读/dev/ttyUSB0
呢?
解决方案
推荐阅读
- php - 安装包时如何解决 Laravel 中的 Guzzle 错误
- python - Python PIL - 绘图线无法按预期工作
- apache-superset - 有没有办法在 Apache Superset 中删除视图或表?
- java - dismess BottomSheetDialogFragment
- maven - 在一个多模块的maven项目中,我可以制作一个模块来根据另一个模块的DependencyReducedPom计算传递依赖吗?
- javascript - React:为什么在每次重新渲染时调用初始化函数时,从 useState 返回的状态保持不变?
- javascript - 如何在 discord.js 中创建一个等待消息的循环
- css - 如何在活动时更改 svg 图像的颜色?
- android - 如何在使用 kotlin 进行数据库调用之前渲染视图
- typescript - 打字稿无法触发多余的成员检查是否传播了受约束类型的成员