학습 C와 atime/mtime 속성 및 nsec 정밀도 값에 대해 stat()
이 반환하는 변수 유형 및 크기를 시각적으로 비교하려고합니다. .C atime/mtime을 nsec 정밀도로 가져 오는 Linux 통계()
나는 파일에 stat()
을 실행하고 반환 합계 구조의 mtime에와 mtime에 NSEC 값을 가져 그리고 난 다음 ... utimes()
에 긴 이야기를 전달하려면 별도의 변수에이 값을 (저장할 해요!).
http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html#NOTES에 따르면 다양한 OS/빌드 조건에 따라 st_mtim.tv_nsec
또는 에서 값을 얻을 수 있습니다. 실제 프로그램에서는 두 가지를 모두 확인하고 설정 한 값을 사용하거나 보통 초 정밀도로 대체합니다. st_mtime
반환되는 일반 타임 스탬프를 저장하기 위해 선언해야하는 변수 유형 및 크기 st_mtime
?
st_mtim.tv_nsec
또는 st_mtimensec
에서 nsec 값을 저장하기 위해 선언해야하는 변수 유형 및 크기는 무엇입니까?
시간의 전체 초 수를 포함하여 소수입니까? 또는 그들은 시간의 nsec 부분을 반환합니까?
내 시스템의 아키텍처에 따라 nsec의 다양한 변수 크기를 선언해야합니까?
마지막으로 printf()
을 사용하여 이러한 변수를 출력하기 위해 필요한 변환 지정자는 무엇입니까?
건배 B
정말 훌륭합니다. 그렇다면 어떻게 stat()에서 nsec 값에 이식 가능한 방법으로 액세스 할 수 있습니까? 일부 플랫폼에서는 st_mtim.tv_nsec에서 제공하고 일부는 st_mtimensec에서 제공하고 일부 플랫폼/파일 시스템에서는 nsec 해상도를 전혀 제공하지 않습니다. – batfastad
슬프게도, 당신은 쉽게 이식 가능한 나노초 타이밍에 접근 할 수있는 코드를 쉽게 작성할 수 없습니다. 즉각적으로 가까운 장래에 플랫폼에 맞는 방법으로 코딩해야합니다. 'time_t'가 64 비트 값인 플랫폼이 있습니다. 32 비트 값이있는 (많은) 다른 것들이 있습니다. 'time_t'와 같은 모든 POSIX 타입을위한 포맷 매크로를 제공했던 analogue (또는 POSIX extension of)''이 있다면 도움이 될 것입니다. 아직 존재하지 않는 AFAIK. –