linux
int lstat(const char *restrict path, struct stat *restrict buf);
lstat() 함수의 두번째 인자로 넘어옴
lstat( 파일 풀경로, stst구조체 );

 struct stat {
    dev_t         st_dev;      /* device */
    ino_t         st_ino;      /* inode */
    mode_t        st_mode;     /* protection */
    nlink_t       st_nlink;    /* number of hard links */
    uid_t         st_uid;      /* user ID of owner */
    gid_t         st_gid;      /* group ID of owner */
    dev_t         st_rdev;     /* device type (if inode device) */
    off_t         st_size;     /* total size, in bytes */
    blksize_t     st_blksize;  /* blocksize for filesystem I/O */
    blkcnt_t      st_blocks;   /* number of blocks allocated */
    time_t        st_atime;    /* time of last access */
    time_t        st_mtime;    /* time of last modification */
    time_t        st_ctime;    /* time of last change */
};
atime : vi, cat, cd 등의 명령으로 접근
mtime : vi, >> 등으로 파일 수정 ( ls -l로 확인 가능시간)
ctime : chmod, chown 등과 관련 있음

Windows
HANDLE WINAPI FindFirstFile(
  __in          LPCTSTR lpFileName,
  __out         LPWIN32_FIND_DATA lpFindFileData
);
FindFirstFile() 함수의 두번째 인자로 넘어옴
FindFirstFile( 파일 경로, LPWIN32_FIND_DATA  구조체 )
 typedef struct _WIN32_FIND_DATAA {
    DWORD dwFileAttributes;
    FILETIME ftCreationTime;
    FILETIME ftLastAccessTime;
    FILETIME ftLastWriteTime;
    DWORD nFileSizeHigh;
    DWORD nFileSizeLow;
    DWORD dwReserved0;
    DWORD dwReserved1;
    CHAR   cFileName[ MAX_PATH ];
    CHAR   cAlternateFileName[ 14 ];
#ifdef _MAC
    DWORD dwFileType;
    DWORD dwCreatorType;
    WORD  wFinderFlags;
#endif
} WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
ftCreationTime : 파일 생성시간
ftLastAccessTime : 파일 접근 시간
ftLastWriteTime : 파일 수정 시간

기준시간
Windows
 1601년 1월 1일, 64비트 정수, 100ns에 1증가
linux    
 1970년 1월 1일, 32비트 정수, 1초에 1증가

Windows -> linux : windowsTime / 10000000 - 11644473600
linux -> Windows : (linuxTime + 11644473600) * 10000000



MSDN를 참고 하자.
http://support.microsoft.com/kb/q167296/
#define Int32x32To64(a, b)  ((__int64)(((__int64)((long)(a))) * ((long)(b))))


'Linux > C/C++' 카테고리의 다른 글

How to truncate a file in C?  (0) 2012.07.11
파일 유무 확인  (0) 2012.07.10
linux GetTickCount  (0) 2012.07.10
유닉스에서 디렉토리 다루기  (0) 2012.07.10
Configuration module to update in a file  (0) 2012.07.02