我写了一个UNIX守护进程(目标是Debian,但它没关系)我想提供一些创建"pid文件"的方法(一个包含守护进程的进程标识符的文件).
我搜索了一种打开文件的方法,只有它不存在,但找不到.
基本上,我可以这样做:
if (fileexists())
{
//fail...
}
else
{
//create it with fopen() or similar
}
Run Code Online (Sandbox Code Playgroud)
但就目前而言,这段代码不会以原子方式执行任务,这样做会很危险,因为另一个进程可能会在我的测试和文件创建过程中创建文件.
你们对如何做到这一点有什么想法吗?
谢谢.
PS:仅涉及的解决方案的奖励点std::streams.