typedef enum { E_TAR_HEADER_SIZE_NAME = 100, E_TAR_HEADER_SIZE_MODE = 8, E_TAR_HEADER_SIZE_UID = 8, E_TAR_HEADER_SIZE_GID = 8, E_TAR_HEADER_SIZE_SIZE = 12, E_TAR_HEADER_SIZE_MAKETIME = 12, E_TAR_HEADER_SIZE_CHECKSUM = 8, E_TAR_HEADER_SIZE_TYPEFLAG = 1, E_TAR_HEADER_SIZE_LINKNAME = 100, E_TAR_HEADER_SIZE_MAGIC = 6, E_TAR_HEADER_SIZE_VERSION = 2, E_TAR_HEADER_SIZE_UNAME = 32, E_TAR_HEADER_SIZE_GNAME = 32, E_TAR_HEADER_SIZE_DEVMAJOR = 8, E_TAR_HEADER_SIZE_DEVMINOR = 8, E_TAR_HEADER_SIZE_PREFIX = 155, E_TAR_HEADER_SIZE_PADDING = 12, }e_TAR_HEADER typedef struct { char Name[E_TAR_HEADER_SIZE_NAME]; char Mode[E_TAR_HEADER_SIZE_MODE]; char UID[E_TAR_HEADER_SIZE_UID]; char GID[E_TAR_HEADER_SIZE_GID]; char Size[E_TAR_HEADER_SIZE_SIZE]; char MakeTime[E_TAR_HEADER_SIZE_MAKETIME]; char CheckSum[E_TAR_HEADER_SIZE_CHECKSUM]; char TypeFlag[E_TAR_HEADER_SIZE_TYPEFLAG]; char LinkName[E_TAR_HEADER_SIZE_LINKNAME]; char Magic[E_TAR_HEADER_SIZE_MAGIC]; char Version[E_TAR_HEADER_SIZE_VERSION]; char UName[E_TAR_HEADER_SIZE_UNAME]; char GName[E_TAR_HEADER_SIZE_GNAME]; char DevMajor[E_TAR_HEADER_SIZE_DEVMAJOR]; char DevMinor[E_TAR_HEADER_SIZE_DEVMINOR]; char Prefix[E_TAR_HEADER_SIZE_PREFIX]; char Padding[E_TAR_HEADER_SIZE_PADDING]; }t_TAR_HEADER; /* Total header size is 512 bytes */