美好的一天,我打开文件写入一些内容。代码如下:
class file_worker
{
public:
file_worker(const std::string &path):path_(path),stop_(false)
{
umask(0);
file_descriptor_ = open(path_.c_str(),O_WRONLY|O_CREAT, 0666);
}
void operator()()
{
if(file_descriptor_!=-1)
{
clear_file();
//write something
}
}
void clear_file()
{
}
~file_worker()
{
if(file_descriptor_!=-1)
{
close(file_descriptor_);
}
}
private:
const std::string path_;
int file_descriptor_;
bool stop_;
};
如何实现 clear_file(); 可以在不关闭文件描述符的情况下清除(删除所有文件内容)的功能?哪种方式可以更快地写入文件?是否可以在文件的不同部分同时写入某些线程的文件(可能使用 lseek)?