On Windows, File::GetTempFilenameForAtomicWrite returns a path somewhere in C:\Users\XXX\AppData\Local\Temp\{UUID here}\ in which all writes just fail. Just use the SYSCONF path + ".tmp" for the temporary file name.