Я написал демон UNIX (нацеленный на Debian, но это не должно иметь значения) и хотел обеспечить какой-то способ создания файла ".pid" (файл, который содержит идентификатор процесса демон).
Я искал способ открытия файла только, если он не существует, но не смог найти.
По сути, я мог бы сделать что-то вроде:
if (fileexists())
{
//fail...
}
else
{
//create it with fopen() or similar
}
Но в нынешнем виде этот код не выполняет задачу атомарно, и это было бы опасно, потому что другой процесс может создать файл во время моего теста, и создание файла.
У вас есть идеи, как это сделать?
Спасибо.
P.S. Бонусный балл за решение, которое включает только std::streams
.