boost文件锁的使用
boost中可以用boost::interprocess::file_lock类对文件进行加锁和解锁操作。
#include <fstream> #include <iostream> #include <boost/interprocess/sync/file_lock.hpp> #include <cstdlib>int main() { using namespace boost::interprocess; std::string fileName("test"); std::fstream file;file.open(fileName.c_str(), std::ios::out | std::ios::binary | std::ios::trunc); if (!file.is_open() || file.bad()) { std::cout << "Open failed" << std::endl; exit(-1); }std::cout << "Process 1 open file" << std::endl;try { file_lock f_lock(fileName.c_str());f_lock.lock();std::cout << "Locked in Process 1" << std::endl;file.write("Process 1", 9); file.flush(); f_lock.unlock();std::cout << "Unlocked from Process 1" << std::endl;} catch (interprocess_exception& e) { std::cout << e.what( ) << std::endl;}file.close();return 0; }
为了避免作用域退出时,忘了解锁引发错误,可使用boost::interprocess::lock_guard。
lock_guard<file_lock> guard(lock); {// .... }
转载于:https://www.cnblogs.com/taiyang-li/p/5949101.html
boost文件锁的使用相关推荐
- boost官方文档同步机制Synchronization mechanisms overview
参考链接 官方文档 Synchronization mechanisms overview Named And Anonymous Synchronization Mechanisms Types O ...
- 使用 Boost 的 IPC 和 MPI 库进行并发编程
使用非常流行的 Boost 库进行并发编程非常有意思.Boost 有几个用于并发编程领域的库:Interprocess (IPC) 库用于实现共享内存.内存映射的 I/O 和消息队列:Thread 库 ...
- 读《Boost程序库完全开发指南》
读<Boost程序库完全开发指南> 2011-05-18 20:47:19| 分类: 读书|举报|字号 订阅 C++确实很复杂,神一样的0x不知道能否使C++变得纯粹和干爽? boost ...
- 《Boost程序完全开发指南》
1.3开发环境 由于Boost大量使用了C++高级特性(如模板偏特化.ADL),因此不是所有的编译器都 能够很好地支持Boost. 在VC集成环境中使用嵌入工程编译的方式需要定义宏BOOST_ALL_ ...
- C/C++ 开发 boost 库参考手册整理(2) 【学习笔记】
文档声明: 以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正.并且该文档在后期会随着学习的深入不断补充完善.感谢各位的参考查看. 笔记资料仅供学习交流使用,转载请标明出处 ...
- 最新超详细C++经典Boost库介绍
Boost库 Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发.维护.Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能. 目录 Boost库 ...
- Linux下安装 boost 库
1. 先去官网下载压缩包: https://www.boost.org/ 2. 解压后cd 进入根目录,然后执行: ./bootstrap.sh 3. 安装(时间会很长): ./b2 install ...
- Mysql依赖库Boost的源码安装,linux下boost库的安装
boost'准标准库'安装过程. 安装的是boost_1_60_0. (1)首先去下载最新的boost代码包,网址www.boost.org. (2)进入到自己的目录,解压: bzip2 -d boo ...
- 函数指针amp;绑定: boost::functoin/std::function/bind
see link: https://isocpp.org/wiki/faq/pointers-to-members function vs template: http://stackoverflow ...
最新文章
- R语言可视化:散点图、散点图和折线图(line charts)、3D散点图、旋转3D散点图、气泡图、corrgram包可视化相关性矩阵、马赛克图( Mosaic plots)、hexbin、密度图
- 深度学习光环背后,机器学习的一些新进展!!!
- 自动驾驶汽车的未来,“锂电池先驱”:需要更强劲的电池
- Bottle源码阅读(3) HeaderDict
- ubuntu shell实现99乘法表
- django2.2 连接redis集群
- c++ primer 5th 练习11.9自己编写的答案
- 一个简单的完成端口(服务端/客户端)类
- 看看webpack打包优化
- mysql 存储过程 获取错误信息 继续执行
- 二分查找 python实现
- 安装Ubuntu前三件重要的事情
- 10分钟入门Shell脚本编程
- PostMan中文参数乱码 row模式传参 Content-Type 中文乱码
- 遇到电脑任务栏卡死怎么办
- 工业制造中的大数据分析应用_工业大数据分析方案-美林数据
- 全网史上最全的AR学习开发资源汇总(转载他人整理作品,供参考)
- 汉诺塔模拟器java
- 本地测试dubbo远程调用找不到provider
- YOLOv3 物体识别显示中文标签
热门文章
- regrex pattern
- Python socket UDP
- 朴素贝叶斯(naive Bayes) 二
- C语言 指针与结构体
- 阿里分布式数据库服务实践
- VMware vCenter Server 的内部版本号和版本 (2143838)
- Spring MVC学习总结(12)——Spring MVC集成Swagger时报错{schemaValidationMessages:[
- Java基础学习总结(43)——Java8 Lambda揭秘
- ligertoolbar 动态加载按钮_Axure利用动态面板实现环形加载进度条
- Excel的html转换成unicode,EXCEL表格中把汉字转换成unicode编码