22 HANDLE hFile = CreateFileA(path, FILE_WRITE_ATTRIBUTES, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
23 if (hFile == INVALID_HANDLE_VALUE)
27 LONGLONG ll = Int32x32To64(epoch, 10000000) + 116444736000000000;
28 ft.dwLowDateTime = (DWORD)ll;
29 ft.dwHighDateTime = (DWORD)(ll >> 32);
34 result = SetFileTime(hFile, NULL, &ft, NULL) != 0;
36 else if (param ==
'c')
38 result = SetFileTime(hFile, &ft, NULL, NULL) != 0;
40 else if (param ==
'm')
42 result = SetFileTime(hFile, NULL, NULL, &ft) != 0;
50 if (stat(path, &st) != 0)
54 times.actime = st.st_atime;
55 times.modtime = st.st_mtime;
61 else if (param ==
'm')
63 times.modtime = epoch;
70 return utime(path, ×) == 0;
77 WIN32_FILE_ATTRIBUTE_DATA fileInfo;
78 if (!GetFileAttributesExA(path, GetFileExInfoStandard, &fileInfo))
83 ft = fileInfo.ftLastAccessTime;
84 else if (param ==
'c')
85 ft = fileInfo.ftCreationTime;
86 else if (param ==
'm')
87 ft = fileInfo.ftLastWriteTime;
92 ull.LowPart = ft.dwLowDateTime;
93 ull.HighPart = ft.dwHighDateTime;
94 return (int64_t)((ull.QuadPart - 116444736000000000) / 10000000);
98 if (stat(path, &st) != 0)
102 return (int64_t)st.st_atime;
103 else if (param ==
'm')
104 return (int64_t)st.st_mtime;
105#if defined(__APPLE__) || defined(__FreeBSD__)
106 else if (param ==
'c')
107 return (int64_t)st.st_birthtime;
118 HANDLE hFile = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL,
119 OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
120 if (hFile == INVALID_HANDLE_VALUE)
123 BY_HANDLE_FILE_INFORMATION info;
124 if (!GetFileInformationByHandle(hFile, &info))
130 return (nlink_t)info.nNumberOfLinks;
135 if (stat(path, &st) != 0)
148 PSID pSidOwner = NULL;
149 PSECURITY_DESCRIPTOR pSD = NULL;
150 if (GetNamedSecurityInfoA(path, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION, &pSidOwner, NULL, NULL, NULL, &pSD) !=
156 *uid = (uid_t)GetSidIdentifierAuthority(pSidOwner)->Value[5];
166 if (stat(path, &st) != 0)