瀏覽代碼

linux deprecated SYS_utime on some archs, so use SYS_utimes instead

the old code could be kept for cases where SYS_utime is available, but
it's not really worth the ifdef ugliness. and better to avoid
deprecated stuff just in case the kernel devs ever get crazy enough to
start removing it from archs where it was part of the ABI and breaking
static bins...
Rich Felker 12 年之前
父節點
當前提交
c37afdfdf3
共有 1 個文件被更改,包括 8 次插入1 次删除
  1. 8 1
      src/time/utime.c

+ 8 - 1
src/time/utime.c

@@ -1,7 +1,14 @@
 #include <utime.h>
+#include <sys/time.h>
 #include "syscall.h"
 
 int utime(const char *path, const struct utimbuf *times)
 {
-	return syscall(SYS_utime, path, times);
+	if (times) {
+		struct timeval tv[2] = {
+			{ .tv_sec = times->actime },
+			{ .tv_sec = times->modtime } };
+		return syscall(SYS_utimes, path, tv);
+	}
+	return syscall(SYS_utimes, path, 0);
 }