zipios++  2.0.2
Zipios++ – a small C++ library that provides easy access to .zip files.
Macros | Typedefs | Functions
dostime.h File Reference

Definitions for the MS-DOS to Unix time conversions. More...

#include <time.h>
#include <inttypes.h>
Include dependency graph for dostime.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DOSTIME_H
 

Typedefs

typedef uint32_t dostime_t
 

Functions

time_t dos2unixtime (dostime_t dostime)
 Convert a DOS time to a Unix time. More...
 
dostime_t dostime (int year, int month, int day, int hour, int minute, int second)
 
dostime_t maxdostime ()
 Return the maximum possible value . More...
 
dostime_t mindostime ()
 Return the minimum possible value. More...
 
dostime_t unix2dostime (time_t unix_time)
 Convert a Unix date to a DOS date. More...
 

Detailed Description

This header defines a few functions helping in converting MS-DOS to Unix time and vice versa.

Note
This uses C code.

Definition in file dostime.h.

Macro Definition Documentation

#define DOSTIME_H

Definition at line 3 of file dostime.h.

Typedef Documentation

typedef uint32_t dostime_t

Definition at line 50 of file dostime.h.

Function Documentation

time_t dos2unixtime ( dostime_t  dostime)

This function returns the Unix time_t value (GMT/UTC time) from the DOS format (local) time dostime, where dostime is a four byte value (date in most significant word, time in least significant word), see dostime() function.

If the input DOS time is invalid, then the function returns -1.

Note
If the dostime is not valid (one of the parameters is out of range) then the function returns -1.
Parameters
[in]dostimeA DOS time value as found in a zip file.
Returns
The DOS time converted to a Unix time or -1.
See Also
dostime()
Todo:
Maximum for tm_mday depends on month/year.

Definition at line 131 of file dostime.c.

Referenced by main(), zipios::ZipCentralDirectoryEntry::read(), zipios::ZipLocalEntry::read(), and zipios::FileEntry::setTime().

dostime_t dostime ( int  year,
int  month,
int  day,
int  hour,
int  minute,
int  second 
)
dostime_t maxdostime ( )

This function returns the maximum DOS time that can be represented in a dostime_t parameter.

At this time we use a 32 bit field (like the Zip archive) so the maximum is Dec 31, 2107 23:59:59.

Note
To get the corresponding Unix time, use the dos2unixtime() as in:
time_t max(dos2unixtime(maxdostime()));
Returns
The largest possible DOS time.

Definition at line 105 of file dostime.c.

dostime_t mindostime ( )

This function returns the minimum DOS time that can be represented in a dostime_t parameter.

At this time we use a 32 bit field (like the Zip archive) so the maximum is Dec 31, 2107 23:59:59.

Note
To get the corresponding Unix time, use the dos2unixtime() as in:
time_t min(dos2unixtime(mindostime()));
Returns
The smallest possible DOS time.

Definition at line 81 of file dostime.c.

dostime_t unix2dostime ( time_t  unix_time)

This function return the Unix time_t converted in DOS format, rounded up to the next even second.

Parameters
[in]unix_timeA Unix time_t value.
Returns
The Unix date in DOS format unless it is out of range for a DOS time and date in which case zero (0) is returned.

Definition at line 219 of file dostime.c.

References dostime().

Referenced by zipios::FileEntry::getTime(), main(), zipios::ZipCentralDirectoryEntry::write(), and zipios::ZipLocalEntry::write().