1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
/* Copyright (c) 1992-1993 Microsoft Corporation */
/* Author: JR (John Rogers, JohnRo@Microsoft) */
#include <assert.h> /* assert(). */
#include <sys/stat.h> /* _stat(), struct _stat. */
#include <stdio.h> /* printf(). */
#include <stdlib.h> /* errno, EXIT_FAILURE, EXIT_SUCCESS, NULL */
#include <time.h> /* ctime(). */
#ifdef _CRTAPI1
// NT:
#define MAINTYPE _CRTAPI1
#else
// OS/2, UNIX:
#define MAINTYPE
#endif
void
ShowTime(
char * Comment,
time_t Time
)
{
char * TimeStringPtr;
TimeStringPtr = ctime( &Time );
if (TimeStringPtr == NULL) {
// 1234567890123456789012345
TimeStringPtr = "*********INVALID********\n";
}
// TimeStringPtr points to str ending with "\n\0".
(void) printf( "%s: %s", Comment, TimeStringPtr );
} // ShowTime
int MAINTYPE
main (
int argc,
char * argv[]
)
{
int ErrorNumber = 0;
char * FileName = argv[1];
struct _stat StatBuffer;
assert( FileName != NULL );
if ( _stat( FileName, &StatBuffer ) ) {
ErrorNumber = errno;
assert( ErrorNumber != 0 );
(void) printf( "stat func failed %d\n", ErrorNumber );
goto Cleanup;
}
ShowTime( "mod time", StatBuffer.st_mtime );
ShowTime( "chg time", StatBuffer.st_ctime );
Cleanup:
if (ErrorNumber == 0) {
return (EXIT_SUCCESS);
} else {
return (EXIT_FAILURE);
}
} // main
|