Boost logo

Boost :

Subject: Re: [boost] [filesystems] file for rename not found
From: Florian Lindner (mailinglists_at_[hidden])
Date: 2019-03-14 09:04:20


Sorry for the missing subject, hit the send button accidentally.

Am 14.03.19 um 09:31 schrieb Florian Lindner via Boost:
> Hello,
>
> I have this innocent piece of code:
>
> namespace fs = boost::filesystem;
> auto path = getFilename(); // returns a string
> fs::create_directories(fs::path(path).parent_path());
> std::ofstream ofs(path + "~");
> ofs << info;
> ofs.close();
> fs::rename(path + "~", path);
>
> which causes the exception:
>
> boost::filesystem::rename: No such file or directory: "../9f/061b4f7a5e529c964659226eedd4e5~", "../9f/061b4f7a5e529c964659226eedd4e5"
>
> However, I have no idea how that could happen. I use the rename, so that a reading process never sees an empty file, but only no file or filed with info. Is there any race involved between ofs.close() and fs:rename()? The code was executed on a distributed network filesystem (lustre).
>
> Any ideas anyone?
>
> Thanks,
> Florian
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk