Mit dieser Methode können Datum und Uhrzeit der Änderung der Datei in C-Sprache bis zu Nanosekunden angezeigt werden. Der Zweck besteht darin, nach regelmäßigen Aktualisierungen von Dateien zu suchen.
-Linux Kernel 2.5.48 oder höher ・ Dateisystem XFS, JFS, Btrfs, ext4 Andere Dateisysteme als die oben genannten können Nanosekunden als 0 anzeigen.
nsec_show.c
#include <stdio.h>
#include <sys/stat.h>
#include <errno.h>
#include <time.h>
int main(int argc, char *argv[])
{
    int i;
    struct stat st;
    char date_str[256];
    /* argc check */
    if (argc != 2) {
        printf("USAGE:%s <FILE PATH>\n", argv[0]);
        return 1;
    }
    /* get stat */
    if (stat(argv[1], &st) != 0) {
        printf("%s\n", strerror(errno));
        return 1;
    }
    /* show */
    strftime(date_str, 255, "%Y%m%d%H%I%M%S", localtime(&st.st_mtime));
    printf("%s.%09ld\n",date_str, st.st_mtim.tv_nsec);
    return 0;
}
Nach dem Kompilieren wird es beim Ausführen wie folgt angezeigt.
$ gcc nsec_show.c  -o nsec_show
$ ./nsec_show ./nsec_show.c
20170305063637.656058532
Übrigens stimmt es mit den Nanosekunden überein, die vom Befehl ls angezeigt werden.
$ ls ./nsec_show.c --full-time
-rw-rw-r--. 1 miyabi miyabi 581 2017-03-05 06:36:37.656058532 +0900 ./nsec_show.c