C++ atime ger inte det jag förväntar mig? (last access time)

Permalänk
Medlem

C++ atime ger inte det jag förväntar mig? (last access time)

Hej
Jag behöver jämföra en fils senast ändrad tid med samma fils senast använd. (mtime och atime)

Jag har en kort kod som skall kunna ge mig informationen jag söker, men jag får samma svar på mtime och atime, även om jag öppnar filen med anteckningar.

Kod:

#include <iostream> #include <ctime> #include <sys/types.h> #include <sys/stat.h> #include <cerrno> #include <cstring> int main(int argc, char** argv ) { struct stat fileInfo; if (argc < 2) { std::cout << "Usage: fileinfo <file name>\n"; return(EXIT_FAILURE); } if (stat(argv[1], &fileInfo) != 0) { // Use stat() to get the info std::cerr << "Error: " << strerror(errno) << '\n'; return(EXIT_FAILURE); } std::cout << "Used : " << std::ctime(&fileInfo.st_atime); // Access time std::cout << "Created : " << std::ctime(&fileInfo.st_ctime); // Creation time std::cout << "Modified : " << std::ctime(&fileInfo.st_mtime); // Last mod time }

Hur ska man få atime att ändras till när man senast öppnade filen?

/Niclas

Visa signatur

Har bytt namn från: nulleman ~ Blogg: http://skorpion.se
MacBook Pro: 15.4' ~ 1.83GHz ~ 1512MB RAM ~ 80GB HDD
Medlem i signaturen blodtörstiga Appleanvändare

Permalänk

Jag skulle nog säga, undvik att använda st_atime eftersom man kan montera filsystemet genom noatime vilket gör att denna variabel inte längre innehåller det förväntade värdet. Har du inte monterat med noatime så räcker det väl med att öppna filen och sen stänga den igen. Operativsystemet borde sköta resten.

Permalänk
Testpilot

Vad gäller det för filsystem? är det NTFS med Windows som gäller iomed att du säger att du öppnar med "anteckningar"? Jag lyckades nämligen googla fram att NTFS inte uppdaterar accesstiden direkt utan fördröjer det med upp till en timme.
http://msdn.microsoft.com/en-us/library/ms724290%28VS.85%29.a...

Eller ska man anta att det handlar om HFS iomed din signatur?

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]