こんにちは、ファイルを開いてコンテンツを書き込みます。以下のコード:
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 を使用することもできます)?