All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <shemminger@linux-foundation.org>
To: Michael Clark <michael@metaparadigm.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: hi-res mtime userspace interface
Date: Sun, 20 Jan 2008 08:50:08 -0800	[thread overview]
Message-ID: <20080120085008.5c0e2b64@deepthought> (raw)
In-Reply-To: <47934820.7020209@metaparadigm.com>

On Sun, 20 Jan 2008 21:09:52 +0800
Michael Clark <michael@metaparadigm.com> wrote:

> Is there an existing linux userspace interface for accessing the 
> microsecond or nanosecond level (a|m|c)times of filesystems that support 
> them (e.g. ext4, xfs)? and possibly also the generation counters used by 
> NFS.
> 
> I notice sys_utimes is able to set microsecond (c|a|m)times but I can't 
> find an associated interface to read them (I've googled to no avail).
> 
> (also noticing freebsd and darwin's struct stat contains struct timespec 
> for these as well as an st_gen field - although I do realise how 
> incredibly difficult it would be to add these to linux's struct stat).
> 

Look at stat.

In /usr/include/bits/stat.h:
struct stat
  {
    __dev_t st_dev;		/* Device.  */
...
#ifdef __USE_MISC
    /* Nanosecond resolution timestamps are stored in a format
       equivalent to 'struct timespec'.  This is the type used
       whenever possible but the Unix namespace rules do not allow the
       identifier 'timespec' to appear in the <sys/stat.h> header.
       Therefore we have to handle the use of this header in strictly
       standard-compliant sources special.  */
    struct timespec st_atim;		/* Time of last access.  */
    struct timespec st_mtim;		/* Time of last modification.  */
    struct timespec st_ctim;		/* Time of last status change.  */
# define st_atime st_atim.tv_sec	/* Backward compatibility.  */
# define st_mtime st_mtim.tv_sec
# define st_ctime st_ctim.tv_sec
#else
    __time_t st_atime;			/* Time of last access.  */
    unsigned long int st_atimensec;	/* Nscecs of last access.  */
    __time_t st_mtime;			/* Time of last modification.  */
    unsigned long int st_mtimensec;	/* Nsecs of last modification.  */
    __time_t st_ctime;			/* Time of last status change.  */
    unsigned long int st_ctimensec;	/* Nsecs of last status change.  */
#endif
-- 
Stephen Hemminger <stephen.hemminger@vyatta.com>

  reply	other threads:[~2008-01-20 16:53 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-20 13:09 hi-res mtime userspace interface Michael Clark
2008-01-20 16:50 ` Stephen Hemminger [this message]
2008-01-20 23:43   ` Michael Clark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080120085008.5c0e2b64@deepthought \
    --to=shemminger@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@metaparadigm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.