⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tar.h

📁 sleuthit-2.09 一个磁盘的工具集
💻 H
字号:
/* * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice immediately at the beginning of the file, without modification, *    this list of conditions, and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. *   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *//* * Header file for public domain tar (tape archive) program. * * @(#)tar.h 1.20 86/10/29	Public Domain. * * Created 25 August 1985 by John Gilmore, ihnp4!hoptoad!gnu. * * $File: tar.h,v 1.11 2007/01/16 14:56:45 ljt Exp $ # checkin only *//* * Kludge for handling systems that cannot cope with multiple * external definitions of a variable.  In ONE routine (tar.c), * we #define TAR_EXTERN to null; here, we set it to "extern" if * it is not already set. */#ifndef TAR_EXTERN#define TAR_EXTERN extern#endif/* * Header block on tape. * * I'm going to use traditional DP naming conventions here. * A "block" is a big chunk of stuff that we do I/O on. * A "record" is a piece of info that we care about. * Typically many "record"s fit into a "block". */#define	RECORDSIZE	512#define	NAMSIZ	100#define	TUNMLEN	32#define	TGNMLEN	32union record {	char		charptr[RECORDSIZE];	struct header {		char	name[NAMSIZ];		char	mode[8];		char	uid[8];		char	gid[8];		char	size[12];		char	mtime[12];		char	chksum[8];		char	linkflag;		char	linkname[NAMSIZ];		char	magic[8];		char	uname[TUNMLEN];		char	gname[TGNMLEN];		char	devmajor[8];		char	devminor[8];	} header;};/* The checksum field is filled with this while the checksum is computed. */#define	CHKBLANKS	"        "	/* 8 blanks, no null *//* The magic field is filled with this if uname and gname are valid. */#define	TMAGIC		"ustar"		/* 5 chars and a null */#define	GNUTMAGIC	"ustar  "	/* 7 chars and a null *//* The linkflag defines the type of file */#define	LF_OLDNORMAL	'\0'		/* Normal disk file, Unix compat */#define	LF_NORMAL	'0'		/* Normal disk file */#define	LF_LINK		'1'		/* Link to previously dumped file */#define	LF_SYMLINK	'2'		/* Symbolic link */#define	LF_CHR		'3'		/* Character special file */#define	LF_BLK		'4'		/* Block special file */#define	LF_DIR		'5'		/* Directory */#define	LF_FIFO		'6'		/* FIFO special file */#define	LF_CONTIG	'7'		/* Contiguous file *//* Further link types may be defined later. *//* * Exit codes from the "tar" program */#define	EX_SUCCESS	0		/* success! */#define	EX_ARGSBAD	1		/* invalid args */#define	EX_BADFILE	2		/* invalid filename */#define	EX_BADARCH	3		/* bad archive */#define	EX_SYSTEM	4		/* system gave unexpected error *//* * Structure for keeping track of filenames and lists thereof. */struct name {	struct name	*next;	short		length;	char		found;	char		name[NAMSIZ+1];};/* * * Due to the next struct declaration, each routine that includes * "tar.h" must also include <sys/types.h>.  I tried to make it automatic, * but System V has no defines in <sys/types.h>, so there is no way of * knowing when it has been included.  In addition, it cannot be included * twice, but must be included exactly once.  Argghh! * * Thanks, typedef.  Thanks, USG. */struct link {	struct link	*next;	dev_t		dev;	ino_t		ino;	short		linkcount;	char		name[NAMSIZ+1];};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -