Dr Andrew Scott G7VAV

My photo
 
April 2024
Mo Tu We Th Fr Sa Su
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 1 2 3 4 5
6 7 8 9 10 11 12


tar.h
001: /* Extended tar format from POSIX.1.
002:    Copyright (C) 1992, 1996 Free Software Foundation, Inc.
003:    This file is part of the GNU C Library.
004:    Written by David J. MacKenzie.
005: 
006:    The GNU C Library is free software; you can redistribute it and/or
007:    modify it under the terms of the GNU Lesser General Public
008:    License as published by the Free Software Foundation; either
009:    version 2.1 of the License, or (at your option) any later version.
010: 
011:    The GNU C Library is distributed in the hope that it will be useful,
012:    but WITHOUT ANY WARRANTY; without even the implied warranty of
013:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014:    Lesser General Public License for more details.
015: 
016:    You should have received a copy of the GNU Lesser General Public
017:    License along with the GNU C Library; if not, write to the Free
018:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
019:    02111-1307 USA.  */
020: 
021: #ifndef _TAR_H
022: #define _TAR_H  1
023: 
024: /* A tar archive consists of 512-byte blocks.
025:    Each file in the archive has a header block followed by 0+ data blocks.
026:    Two blocks of NUL bytes indicate the end of the archive.  */
027: 
028: /* The fields of header blocks:
029:    All strings are stored as ISO 646 (approximately ASCII) strings.
030: 
031:    Fields are numeric unless otherwise noted below; numbers are ISO 646
032:    representations of octal numbers, with leading zeros as needed.
033: 
034:    linkname is only valid when typeflag==LNKTYPE.  It doesn't use prefix;
035:    files that are links to pathnames >100 chars long can not be stored
036:    in a tar archive.
037: 
038:    If typeflag=={LNKTYPE,SYMTYPE,DIRTYPE} then size must be 0.
039: 
040:    devmajor and devminor are only valid for typeflag=={BLKTYPE,CHRTYPE}.
041: 
042:    chksum contains the sum of all 512 bytes in the header block,
043:    treating each byte as an 8-bit unsigned value and treating the
044:    8 bytes of chksum as blank characters.
045: 
046:    uname and gname are used in preference to uid and gid, if those
047:    names exist locally.
048: 
049:    Field Name   Byte Offset     Length in Bytes Field Type
050:    name         0               100             NUL-terminated if NUL fits
051:    mode         100             8
052:    uid          108             8
053:    gid          116             8
054:    size         124             12
055:    mtime        136             12
056:    chksum       148             8
057:    typeflag     156             1               see below
058:    linkname     157             100             NUL-terminated if NUL fits
059:    magic        257             6               must be TMAGIC (NUL term.)
060:    version      263             2               must be TVERSION
061:    uname        265             32              NUL-terminated
062:    gname        297             32              NUL-terminated
063:    devmajor     329             8
064:    devminor     337             8
065:    prefix       345             155             NUL-terminated if NUL fits
066: 
067:    If the first character of prefix is '\0', the file name is name;
068:    otherwise, it is prefix/name.  Files whose pathnames don't fit in that
069:    length can not be stored in a tar archive.  */
070: 
071: /* The bits in mode: */
072: #define TSUID   04000
073: #define TSGID   02000
074: #define TSVTX   01000
075: #define TUREAD  00400
076: #define TUWRITE 00200
077: #define TUEXEC  00100
078: #define TGREAD  00040
079: #define TGWRITE 00020
080: #define TGEXEC  00010
081: #define TOREAD  00004
082: #define TOWRITE 00002
083: #define TOEXEC  00001
084: 
085: /* The values for typeflag:
086:    Values 'A'-'Z' are reserved for custom implementations.
087:    All other values are reserved for future POSIX.1 revisions.  */
088: 
089: #define REGTYPE         '0'     /* Regular file (preferred code).  */
090: #define AREGTYPE        '\0'    /* Regular file (alternate code).  */
091: #define LNKTYPE         '1'     /* Hard link.  */
092: #define SYMTYPE         '2'     /* Symbolic link (hard if not supported).  */
093: #define CHRTYPE         '3'     /* Character special.  */
094: #define BLKTYPE         '4'     /* Block special.  */
095: #define DIRTYPE         '5'     /* Directory.  */
096: #define FIFOTYPE        '6'     /* Named pipe.  */
097: #define CONTTYPE        '7'     /* Contiguous file */
098:  /* (regular file if not supported).  */
099: 
100: /* Contents of magic field and its length.  */
101: #define TMAGIC  "ustar"
102: #define TMAGLEN 6
103: 
104: /* Contents of the version field and its length.  */
105: #define TVERSION        "00"
106: #define TVERSLEN        2
107: 
108: #endif /* tar.h */
109: 


for client 3.135.190.232
© Andrew Scott 2006 - 2024,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/