一种多线程写文件的方法
2020-12-28 03:15:02
多线程写文件在日常的项目非常常见,比如日志打印。
在C++中提供了ofstream,ifstream,fstream三种类型可以提供文件读写操作的功能。
下图是c++ ios、istream、iostream、fstream、sstream的相互关系。
本文只讨论fstream的使用:
打开文件在fstream类中,成员函数open()实现打开文件的操作。打开文件的方式包括以下几种:
写文件在fstream类中,成员函数write()实现写文件的操作。函数原型为:
多线程写文件多线程写文件主要考虑的两个问题:
文件描述符的获取多线程写文件的线程安全思路:
使用单例模式固定获取一个文件描述符加互斥锁保证写文件时的顺序话不多说,直接上代码
先写一个单例:
具体使用
大家可以尝试下这个方法,也可以看下有没有更好的方案。
阅读剩余内容