(tar.info.gz) Large or Negative Values
Large or Negative Values
POSIX `tar' format uses fixed-sized unsigned octal strings to
represent numeric values. User and group IDs and device major and
minor numbers have unsigned 21-bit representations, and file sizes and
times have unsigned 33-bit representations. GNU `tar' generates POSIX
representations when possible, but for values outside the POSIX range
it generates two's-complement base-256 strings: uids, gids, and device
numbers have signed 57-bit representations, and file sizes and times
have signed 89-bit representations. These representations are an
extension to POSIX `tar' format, so they are not universally portable.
The most common portability problems with out-of-range numeric values
are large files and future or negative time stamps.
Portable archives should avoid members of 8 GB or larger, as POSIX
`tar' format cannot represent them.
Portable archives should avoid time stamps from the future. POSIX
`tar' format can represent time stamps in the range 1970-01-01 00:00:00
through 2242-03-16 12:56:31 UTC. However, many current hosts use a
signed 32-bit `time_t', or internal time stamp format, and cannot
represent time stamps after 2038-01-19 03:14:07 UTC; so portable
archives must avoid these time stamps for many years to come.
Portable archives should also avoid time stamps before 1970. These
time stamps are a common POSIX extension but their `time_t'
representations are negative. Many traditional `tar' implementations
generate a two's complement representation for negative time stamps
that assumes a signed 32-bit `time_t'; hence they generate archives
that are not portable to hosts with differing `time_t' representations.
GNU `tar' recognizes this situation when it is run on host with a
signed 32-bit `time_t', but it issues a warning, as these time stamps
are nonstandard and unportable.
automatically generated byinfo2html