char tmp[PATH_MAX];
int fd;
+ // does the file already have correct content?
+ char oldval[80];
+ ret = read_meta(base, file, oldval, sizeof(oldval));
+ if (ret == (int)vallen && memcmp(oldval, val, vallen) == 0)
+ return 0; // yes.
+
snprintf(fn, sizeof(fn), "%s/%s", base.c_str(), file.c_str());
snprintf(tmp, sizeof(tmp), "%s/%s.tmp", base.c_str(), file.c_str());
fd = ::open(tmp, O_WRONLY|O_CREAT|O_TRUNC, 0644);