- int fdout = open(target.c_str(), O_CREAT | O_RDWR, S_IRWXU);
- xbt_assert(fdout >= 0, "Cannot write into %s", target.c_str());
+ XBT_ATTRIB_UNUSED int unlink_status = unlink(target.c_str());
+ xbt_assert(unlink_status == 0 || errno == ENOENT, "Failed to unlink file %s: %s", target.c_str(), strerror(errno));
+ int fdout = open(target.c_str(), O_CREAT | O_RDWR | O_EXCL, S_IRWXU);
+ xbt_assert(fdout >= 0, "Cannot write into %s: %s", target.c_str(), strerror(errno));