Copyright (C) 2000-2012 |
GNU Info (tar.info)Large or Negative ValuesLarge 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 by info2www version 1.2.2.9 |