Annotation of researchv10no/cmd/odist/tar/tar.h, revision 1.1

1.1     ! root        1: struct tarbuf {
        !             2:        char name[100];         /* strncpy format */
        !             3:        char mode[8];           /* octal NUL-terminated */
        !             4:        char uid[8];            /* octal */
        !             5:        char gid[8];            /* octal */
        !             6:        char size[12];          /* octal */
        !             7:        char mtime[12];         /* octal */
        !             8:        char chksum[8];         /* octal sum of header bytes; set to
        !             9:                                   blanks while computing chksum */
        !            10:        char typeflag[1];       /* see below */
        !            11:        char linkname[100];     /* strncpy */
        !            12:        char magic[6];          /* see below */
        !            13:        char version[2];        /* see below */
        !            14:        char uname[32];         /* strcpy format */
        !            15:        char gname[32];         /* strcpy */
        !            16:        char devmajor[8];       /* octal */
        !            17:        char devminor[8];       /* octal */
        !            18:        char prefix[155];       /* strncpy */
        !            19:        char zeropad[12];
        !            20: };
        !            21: 
        !            22: #define TSIZE (sizeof (struct tarbuf))
        !            23: 
        !            24: #define TMAGIC "ustar"         /* ustar\0 */
        !            25: #define TMAGLEN 6
        !            26: #define TVERSION "00"          /* strncpy, n == 2 */
        !            27: #define TVERSLEN 2
        !            28: 
        !            29: /* typeflag values */
        !            30: #define AREGTYPE '\0'          /* historical regular file */
        !            31: #define REGTYPE '0'            /* regular file */
        !            32: #define LNKTYPE '1'            /* hard link */
        !            33: #define SYMTYPE '2'            /* reserved (symbolic link) */
        !            34: #define CHRTYPE '3'            /* character special */
        !            35: #define BLKTYPE '4'            /* block special */
        !            36: #define DIRTYPE '5'            /* directory */
        !            37: #define FIFOTYPE '6'           /* fifo special */
        !            38: #define CONTTYPE '7'           /* reserved (socket?) */
        !            39: 
        !            40: /* mode bits */
        !            41: #define TSUID 04000            /* set user id on execution */
        !            42: #define TSGID 02000            /* set group id on execution */
        !            43: #define TSVTX 01000            /* reserved */
        !            44: #define TUREAD 00400           /* read by owner */
        !            45: #define TUWRITE 00200          /* write by owner */
        !            46: #define TUEXEC 00100           /* exec/search by owner */
        !            47: #define TGREAD 00040           /* read by group */
        !            48: #define TGWRITE 00020          /* write by group */
        !            49: #define TGEXEC 00010           /* exec/search by group */
        !            50: #define TOREAD 00004           /* read by other */
        !            51: #define TOWRITE 00002          /* write by other */
        !            52: #define TOEXEC 00001           /* exec/search by other */
        !            53: #define TMASK 07777            /* mask of all bits (not in POSIX) */
        !            54: 
        !            55: #define TNAMEMAX 256
        !            56: #define TLINKMAX 100
        !            57: #define TUGNAMEMAX 31
        !            58: 
        !            59: /* incore equivalent of a tar buffer */
        !            60: struct tarhdr {
        !            61:        char name[TNAMEMAX + 1];
        !            62:        int mode;
        !            63:        int uid;
        !            64:        int gid;
        !            65:        long size;
        !            66:        time_t mtime;
        !            67:        char typeflag;
        !            68:        char linkname[TLINKMAX + 1];
        !            69:        char uname[TUGNAMEMAX + 1];
        !            70:        char gname[TUGNAMEMAX + 1];
        !            71:        int devmajor;
        !            72:        int devminor;
        !            73: };
        !            74: 
        !            75: extern int thdrget(struct tarhdr *hdr, struct tarbuf *buf);
        !            76: extern int thdrput(struct tarbuf *buf, struct tarhdr *hdr);
        !            77: 
        !            78: /* stuff the user needs to provide */
        !            79: extern int gidnum(char *);
        !            80: extern char *gidstr(int);
        !            81: extern int uidnum(char *);
        !            82: extern char *uidstr(int);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.