本文整理汇总了Golang中syscall.Timespec类的典型用法代码示例。如果您正苦于以下问题:Golang Timespec类的具体用法?Golang Timespec怎么用?Golang Timespec使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Timespec类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getRawMonoTime
func getRawMonoTime() (int64, int64) {
var timeSpec syscall.Timespec
syscall.Syscall(syscall.SYS_CLOCK_GETTIME, CLOCK_MONOTONIC_RAW, uintptr(unsafe.Pointer(&timeSpec)), 0)
sec, nsec := timeSpec.Unix()
return sec, nsec
}
示例2: ParseCMTime
func (conf *FindConf) ParseCMTime() {
now := time.Now().Unix()
var ct, mt, at syscall.Timespec
ct.Sec = now - int64(conf.Cmin*60) - int64(conf.Ctime*24*3600)
mt.Sec = now - int64(conf.Mmin*60) - int64(conf.Mtime*24*3600)
at.Sec = now - int64(conf.Amin*60) - int64(conf.Atime*24*3600)
conf.Stat.Ctim = ct
conf.Stat.Mtim = mt
conf.Stat.Atim = at
}
示例3: compareRegularInodes
func compareRegularInodes(left, right *RegularInode, logWriter io.Writer) bool {
if left.Mode != right.Mode {
if logWriter != nil {
fmt.Fprintf(logWriter, "Mode: left vs. right: %x vs. %x\n",
left.Mode, right.Mode)
}
return false
}
if left.Uid != right.Uid {
if logWriter != nil {
fmt.Fprintf(logWriter, "Uid: left vs. right: %d vs. %d\n",
left.Uid, right.Uid)
}
return false
}
if left.Gid != right.Gid {
if logWriter != nil {
fmt.Fprintf(logWriter, "Gid: left vs. right: %d vs. %d\n",
left.Gid, right.Gid)
}
return false
}
if left.Size != right.Size {
if logWriter != nil {
fmt.Fprintf(logWriter, "Size: left vs. right: %d vs. %d\n",
left.Size, right.Size)
}
return false
}
var leftMtime, rightMtime syscall.Timespec
leftMtime.Sec = left.MtimeSeconds
leftMtime.Nsec = int64(left.MtimeNanoSeconds)
rightMtime.Sec = right.MtimeSeconds
rightMtime.Nsec = int64(right.MtimeNanoSeconds)
if leftMtime != rightMtime {
if logWriter != nil {
fmt.Fprintf(logWriter, "Mtime: left vs. right: %v vs. %v\n",
leftMtime, rightMtime)
}
return false
}
if bytes.Compare(left.Hash[:], right.Hash[:]) != 0 {
if logWriter != nil {
fmt.Fprintf(logWriter, "hash: left vs. right: %x vs. %x\n",
left.Hash, right.Hash)
}
return false
}
return true
}
示例4: compareInodes
func compareInodes(left, right *Inode, logWriter io.Writer) bool {
if left.Mode != right.Mode {
if logWriter != nil {
fmt.Fprintf(logWriter, "Mode: left vs. right: %o vs. %o\n",
left.Mode, right.Mode)
}
return false
}
if left.Uid != right.Uid {
if logWriter != nil {
fmt.Fprintf(logWriter, "Uid: left vs. right: %d vs. %d\n",
left.Uid, right.Uid)
}
return false
}
if left.Gid != right.Gid {
if logWriter != nil {
fmt.Fprintf(logWriter, "Gid: left vs. right: %d vs. %d\n",
left.Gid, right.Gid)
}
return false
}
var leftMtime, rightMtime syscall.Timespec
leftMtime.Sec = left.MtimeSeconds
leftMtime.Nsec = int64(left.MtimeNanoSeconds)
rightMtime.Sec = right.MtimeSeconds
rightMtime.Nsec = int64(right.MtimeNanoSeconds)
if leftMtime != rightMtime {
if logWriter != nil {
fmt.Fprintf(logWriter, "Mtime: left vs. right: %v vs. %v\n",
leftMtime, rightMtime)
}
return false
}
if left.Mode&syscall.S_IFMT == syscall.S_IFBLK ||
left.Mode&syscall.S_IFMT == syscall.S_IFCHR {
if left.Rdev != right.Rdev {
if logWriter != nil {
fmt.Fprintf(logWriter, "Rdev: left vs. right: %#x vs. %#x\n",
left.Rdev, right.Rdev)
}
return false
}
}
return true
}
示例5: compareSpecialInodesMetadata
func compareSpecialInodesMetadata(left, right *SpecialInode,
logWriter io.Writer) bool {
if left == right {
return true
}
if left.Mode != right.Mode {
if logWriter != nil {
fmt.Fprintf(logWriter, "Mode: left vs. right: %o vs. %o\n",
left.Mode, right.Mode)
}
return false
}
if left.Uid != right.Uid {
if logWriter != nil {
fmt.Fprintf(logWriter, "Uid: left vs. right: %d vs. %d\n",
left.Uid, right.Uid)
}
return false
}
if left.Gid != right.Gid {
if logWriter != nil {
fmt.Fprintf(logWriter, "Gid: left vs. right: %d vs. %d\n",
left.Gid, right.Gid)
}
return false
}
var leftMtime, rightMtime syscall.Timespec
leftMtime.Sec = left.MtimeSeconds
leftMtime.Nsec = int64(left.MtimeNanoSeconds)
rightMtime.Sec = right.MtimeSeconds
rightMtime.Nsec = int64(right.MtimeNanoSeconds)
if leftMtime != rightMtime {
if logWriter != nil {
fmt.Fprintf(logWriter, "Mtime: left vs. right: %v vs. %v\n",
leftMtime, rightMtime)
}
return false
}
return true
}
示例6: timeFromTimespec
func timeFromTimespec(ts syscall.Timespec) time.Time {
sec, nsec := ts.Unix()
return time.Unix(sec, nsec)
}
示例7: Now
// TODO(sgotti) for the moment just use a syscall so it'll work on all linux
// architectures. It's slower than using a vdso but we don't have such performance
// needs. Let's wait for a stdlib native monotonic clock.
func Now() int64 {
var ts syscall.Timespec
syscall.Syscall(syscall.SYS_CLOCK_GETTIME, CLOCK_MONOTONIC, uintptr(unsafe.Pointer(&ts)), 0)
nsec := ts.Nano()
return nsec
}
示例8: toTime
func toTime(src syscall.Timespec) time.Time {
sec, nsec := src.Unix()
return time.Unix(sec, nsec)
}