Niektóre systemy plików (np. Ext4 i JFS) oferują nanosekundową rozdzielczość pól atime/mtime. Jak mogę odczytać pola o rozdzielczości ns? stat
syscall zwraca time_t
, która jest drugą rozdzielczością.Uzyskaj precyzyjne pola atime, mtime, ctime dla pliku (stat?)
Odpowiedz
czasów sekund rozdzielczości są w polach:
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
Ale sekcja „UWAGI” człowieka http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html mówi:
Ponieważ jądro 2.5.48, struktura stat obsługuje rozdzielczość nanosekund dla trzech pól znaczników pliku. Glibc odsłania nanosekundowy komponent każdego pola używając nazw postaci st_atim.tv_nsec, jeśli zdefiniowano makro testowe funkcji _BSD_SOURCE lub _SVID_SOURCE. Pola te są określone w POSIX.1-2008, a począwszy od wersji 2.12 glibc również ujawnia te nazwy , jeśli _POSIX_C_SOURCE jest zdefiniowane z wartością 200809L lub większą, lub _XOPEN_SOURCE jest zdefiniowane z wartością 700 lub większą. Jeśli żadna z wymienionych makra są zdefiniowane, wówczas wartości nanosekundy narażone są z imion st_atimensec formularza.
Więc NSEC części czasach są w tej samej "struct stat": (/usr/include/asm/stat.h)
unsigned long st_atime_nsec;
unsigned int st_mtime_nsec;
unsigned long st_ctime_nsec;
#define STAT_HAVE_NSEC 1
- 1. Czy ctime jest zawsze <= mtime?
- 2. Windows i ctime/st_ctime
- 3. Dlaczego pola w `struct stat` nazywają st_something?
- 4. Ustawianie/zmiana atrybutu ctime lub "Change time" w pliku
- 5. Dlaczego indeksacja listy przerwań Time :: HiRes :: stat?
- 6. Ostrzeżenie: filemtime(): stat nie powiodło się dla
- 7. Ogólna wartość pola refleksji Uzyskaj wartość pola
- 8. JVM Arbitralne Precyzyjne Biblioteki
- 9. Using Struct Stat()
- 10. Uzyskaj identyfikator SRID pola geometrii
- 11. Uzyskaj ukrytą wartość pola Jquery?
- 12. Hibernate Envers - Uzyskaj zmienione pola
- 13. Making git diff --stat pokazać pełną ścieżkę dostępu do pliku
- 14. Interpretacja wyjściu perf stat
- 15. Binutils stat nielegalna opcja -c
- 16. Szybkie i precyzyjne powtarzanie Pythona
- 17. Precyzyjne przywoływanie w lucene java
- 18. Uzyskaj lokalizację komentarzy XML dla pliku wyjściowego dla ASP Core
- 19. Jak zatrzymać tworzenie pliku .stat w Delphi 10 Seattle IDE
- 20. Uzyskaj wymagane pola z dokumentu w Mongoengine?
- 21. Uzyskaj lokalizację pliku JAR
- 22. Uzyskaj domyślne/preferowane rozszerzenie pliku
- 23. Uzyskaj wartość pola obiektu wewnątrz pętli fields_for
- 24. Uzyskaj nazwę pola modelu w szablonie
- 25. Uzyskaj wartość z ukrytego pola - jQuery
- 26. Uzyskaj nazwę pola z klasy bez instancji
- 27. Uzyskaj kierunek geograficzny za pomocą pola magnetycznego
- 28. Uzyskaj wartości pola (td), klikając wiersz tabeli
- 29. Uzyskaj wartość ukrytego pola po stronie klienta
- 30. Uzyskaj obiekt z max wartość pola [Mongoid]
Więc jeśli chcę mój program być przenośne, który powinienem użyć: 'st_atim.tv_nsec' lub' st_atimensec'? – musiphil
Jak aby był on zgodny ze specyficznych implementacji * NetBSD i OSX (które wspierają nanosekundy ale z różnymi nazwami typów reklam) *? – user2284570