- /* link() doesn't always work, such as on Windows FAT
- filesystems. If it fails, try rename(). */
- if (link(oldfilename, tmpfil) != 0 &&
- rename(oldfilename, tmpfil) != 0) {
- (void) unlink(oldfilename);
- free(oldfilename);
- free(tmpfil);
- return NULL;
- }
-
- (void) unlink(oldfilename);