TMPFILE
if (rename(TMPFILE, TMPFILE2) == -1)
if (symlink(TMPFILE2, TMPFILE) == -1)
(void)utimensat(AT_FDCWD, TMPFILE, ts, AT_SYMLINK_NOFOLLOW);
(void)unlink(TMPFILE);
if ((fd = open(TMPFILE, O_CREAT, 0600)) == -1)
if (utimensat(AT_FDCWD, TMPFILE, ts, AT_SYMLINK_NOFOLLOW) == -1)
if (stat(TMPFILE, &sb) == -1)