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.