如何在不打开文件的情况下使用boost文件系统创建文件

Arm*_*yan 7 c++ filesystems boost

在boost文件系统中,有一个create_directory创建目录的函数.如何创建文件?我可以通过定义一个boost::filesystem::ofstream对象创建一个,但也可以打开文件,所以close在我可以做其他事情之前我必须先调用它,比如重命名或删除.这是唯一的方法吗?

seh*_*ehe 7

Boost Filesystem V3不提供touch(1)功能;

即使touch将创建+关闭文件,只需看看输出strace:

open("/tmp/q", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 47
dup2(47, 0)                             = 0
close(47)                               = 0
utimensat(0, NULL, NULL, 0)             = 0
Run Code Online (Sandbox Code Playgroud)

我认为你最合理的选择是创建一个关闭文件的包装函数.