1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 //go:build aix || darwin || dragonfly || freebsd || hurd || openbsd || netbsd || solaris
6 // +build aix darwin dragonfly freebsd hurd openbsd netbsd solaris
8 // General POSIX version of UtimesNano.
14 func UtimesNano(path
string, ts
[]Timespec
) error
{
15 // TODO: The BSDs can do utimensat with SYS_UTIMENSAT but it
16 // isn't supported by darwin so this uses utimes instead
20 // Not as efficient as it could be because Timespec and
21 // Timeval have different types in the different OSes
23 NsecToTimeval(TimespecToNsec(ts
[0])),
24 NsecToTimeval(TimespecToNsec(ts
[1])),
26 return utimes(path
, (*[2]Timeval
)(unsafe
.Pointer(&tv
[0])))