I have two files, A
and B
, each with its own content.
I would like to swap these two files, so A
would become B
, and B
would become A
. But I would like to do with a guaranty that no other process will find these two files in an inconsistent state, nor any process will find any of those files missing, even for a short while. So, as a side operation, I would also like to have a guaranty that if anything would go wrong during the operation, nothing will be changed (kind of like a transaction I guess).
On OS X there is a exchangedata()
function, so I guess I'm looking for a Linux equivalent of it, or at least an equivalent method for doing atomic file swap.