相关疑难解决方法(0)

如果文件不存在,如何创建文件?

我写了一个UNIX守护进程(目标是Debian,但它没关系)我想提供一些创建"pid文件"的方法(一个包含守护进程的进程标识符的文件).

我搜索了一种打开文件的方法,只有它不存在,但找不到.

基本上,我可以这样做:

if (fileexists())
{
  //fail...
}
else
{
  //create it with fopen() or similar
}
Run Code Online (Sandbox Code Playgroud)

但就目前而言,这段代码不会以原子方式执行任务,这样做会很危险,因为另一个进程可能会在我的测试和文件创建过程中创建文件.

你们对如何做到这一点有什么想法吗?

谢谢.

PS:仅涉及的解决方案的奖励点std::streams.

c++ linux file atomic

7
推荐指数
2
解决办法
3817
查看次数

标签 统计

atomic ×1

c++ ×1

file ×1

linux ×1