diff options
author | Charles Blake <cb@cblake.net> | 2017-02-07 09:00:19 -0500 |
---|---|---|
committer | Charles Blake <cb@cblake.net> | 2017-02-07 09:00:19 -0500 |
commit | 53dfb21d6c227ee940fd20fdce321f19f8c656b9 (patch) | |
tree | 16ebfb6f4baecfd018e618de61047b1721943272 | |
parent | b5b9c7d2e2839767fc514d7499b31d45eb732150 (diff) | |
download | Nim-53dfb21d6c227ee940fd20fdce321f19f8c656b9.tar.gz |
Move Timespec up, use in Stat for st_?tim and define accessors for the seconds
portion of the Timespec.
-rw-r--r-- | lib/posix/posix.nim | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/lib/posix/posix.nim b/lib/posix/posix.nim index 716f625e7..9338fcd99 100644 --- a/lib/posix/posix.nim +++ b/lib/posix/posix.nim @@ -101,6 +101,11 @@ type {.deprecated: [TSocketHandle: SocketHandle].} type + Timespec* {.importc: "struct timespec", + header: "<time.h>", final, pure.} = object ## struct timespec + tv_sec*: Time ## Seconds. + tv_nsec*: int ## Nanoseconds. + Dirent* {.importc: "struct dirent", header: "<dirent.h>", final, pure.} = object ## dirent_t struct d_ino*: Ino ## File serial number. @@ -270,9 +275,9 @@ type ## For a typed memory object, the length in bytes. ## For other file types, the use of this field is ## unspecified. - st_atime*: Time ## Time of last access. - st_mtime*: Time ## Time of last data modification. - st_ctime*: Time ## Time of last status change. + st_atim*: Timespec ## Time of last access. + st_mtim*: Timespec ## Time of last data modification. + st_ctim*: Timespec ## Time of last status change. st_blksize*: Blksize ## A file system-specific preferred I/O block size ## for this object. In some file system types, this ## may vary from file to file. @@ -311,10 +316,6 @@ type tm_wday*: cint ## Day of week [0,6] (Sunday =0). tm_yday*: cint ## Day of year [0,365]. tm_isdst*: cint ## Daylight Savings flag. - Timespec* {.importc: "struct timespec", - header: "<time.h>", final, pure.} = object ## struct timespec - tv_sec*: Time ## Seconds. - tv_nsec*: int ## Nanoseconds. Itimerspec* {.importc: "struct itimerspec", header: "<time.h>", final, pure.} = object ## struct itimerspec it_interval*: Timespec ## Timer period. @@ -1609,6 +1610,16 @@ var MSG_OOB* {.importc, header: "<sys/socket.h>".}: cint ## Out-of-band data. +proc st_atime*(s: Stat): Time {.inline.} = + ## Second-granularity time of last access + result = s.st_atim.tv_sec +proc st_mtime*(s: Stat): Time {.inline.} = + ## Second-granularity time of last data modification. + result = s.st_mtim.tv_sec +proc st_ctime*(s: Stat): Time {.inline.} = + ## Second-granularity time of last status change. + result = s.st_ctim.tv_sec + proc WIFCONTINUED*(s:cint) : bool {.importc, header: "<sys/wait.h>".} ## True if child has been continued. proc WIFEXITED*(s:cint) : bool {.importc, header: "<sys/wait.h>".} |