ltfvars.c
来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 311 行
C
311 行
#ifndef lintstatic char *sccsid = "@(#)ltfvars.c 4.1 (ULTRIX) 7/17/90";#endif lint/**************************************************************** * * * Copyright (c) 1985 by * * Digital Equipment Corporation, Maynard, MA * * All rights reserved. * * * * This software is furnished under a license and may be used * * and copied only in accordance with the terms of such * * license and with the inclusion of the above copyright * * notice. This software or any other copies thereof may * * not be provided or otherwise made available to any other * * person. No title to and ownership of the software is * * hereby transferred. * * * * The information in this software is subject to change * * without notice and should not be construed as a * * commitment by Digital Equipment Corporation. * * * * Digital assumes no responsibility for the use or * * reliability of its software on equipment which is not * * supplied by Digital. * * * ****************************************************************//**//* * * File name: * * ltfvars.c * * Source file description: * * Contains common definitions and GLOBAL declarations * for variables used by the Labeled Tape Facility * (LTF). * * *-* NOTE *-* * ---- * When adding a new variable, do not forget to also include * an external declaration in ltfdefs.h so that all other * modules may access the new variable(s). * * * Functions: * * n/a * * Usage: * * n/a * * Compile: * * n/a * * Modification history: * ~~~~~~~~~~~~~~~~~~~~ * * revision comments * -------- ----------------------------------------------- * 01.0 14-April-85 Ray Glaser * Create orginal version. * * 01.1 25-Mar-87 Suzanne Logcher * Made Outbuf global to be on a word * boundary * *//**//* *-* NOTE *-* * ---- * The following "define" MUST preceed the include ltfdefs.h * for the reasons given below. */#define VARSC /* So that ltfdefs.h knows that we are compiling * the variables module and actually compiles * (allocates) variable storage space where * required. *//* ----------------- * +--> LOCAL INCLUDES <--+ * ----------------- */#include "ltfdefs.h" /* Common GLOBAL constants, etc *//* ---------------------- * +--> GLOBAL DECLARATIONS <--+ * ---------------------- *//*_A_*/struct ALINKBUF *A_head; /* Allocate a pointer to start of links * list for appending file(s) function */char Ansiv = '4'; /* ANSI Version number of volume. (default value for output, set to actual on input). User may specify version 3 output to override default. */char A_specials[A_SPECIALS+1] =" !\"%&\'()*+,-_./:;<=>?";/*_B_*/char *Bb; /* "fuf" buffer (block) pointer */long Blocks; /* Number of tape blocks read/written */int Blocksize = 2048; /* Tape default blocksize - for * non-tape devices, sb a multiple * of 80 bytes. ie. 2080 is good. * Else, the dummy tape marks used * in/by odm.c don't work so good. *//*_C_*/char ch; /* Temporary character variable */char *cp, *cp2; /* Temporary character pointers */char Carriage = ' '; /* Carriage control attribute from/to * HDR2 label. *//*_D_*/int Days[2][13] = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };struct DIRE *Dhead; /* Head pointer for directorys on the * volume list. */int Dircre = 0; /* Flags wether a directory had to be * created on extract. */int Dfiletype = 0; /* Current default/user designated file type for an output function. */char Dummy[MAXPATHLEN+1];/* Dummy area for string scans and * general label i/o work. */int Dverbose = 0; /* Set true if we want to see the directory * information on the volume. *//*_E_*/int error_status; /* error status for expnum *//*_F_*/struct FILESTAT *F_head; /* Allocate a pointer to start of * append file list. */char Format; /* Format for records, F, D, or S */int Fsecno; /* fsecno of next file to append */int Fseqno; /* fseqno of next file to append */int Func; /* Function (crxt) *//*_G_*//*_H_*/char Hostname[21]; /* Hostname from/to HDR3 *//*_I_*/char IMPID[14] = "DECULTRIX0000"; /* Ultrix system implementation * id */struct stat Inode; /* Inode structure */int i; /* Temporary integer */int isdir = 0; /* Clear flag to scantape *//*_J_*/int j; /* Temporary integer *//*_K_*//*_L_*/char Labelbuf[BUFSIZE+1]; /* Work area for r/w ANSI labels */int Leofl = 0; /* Last EOF label number used to contain a * component of an Ultrix path name. */int Lhdrl = 3; /* Last HDR label number used to contain a * component of an Ultrix path name. */int L_blklen; /*[05] block length - * number of chctrs per block */char L_crecent; /*[01] creation date century */char L_credate[6]; /*[05] creation date */char L_labid[4]; /*[03] Label identifier (HDR or EOF) */int L_labno; /*[01] label number */char L_expirdate[6]; /*[06] expiration date */char L_filename[18]; /*[17] file identifier */int L_fsecno; /*[04] file section number */int L_fseqno; /*[04] file sequence number */int L_gen; /*[04] generation number */int L_genver; /*[02] genration vrsn number */long L_nblocks; /*[06] block count */char L_ownrid[15]; /*[14] owner id */char L_recformat; /*[01] record format */int L_reclen; /*[05] record length */char L_systemid[14]; /* Identifies the ID of the system * that recorded the file */char L_volid[7]; /*[06] volume identifier * (tape label) * (file set identifier) *//*_M_*/#ifdef U11char Magtdev[MAXPATHLEN+1] = "/dev/rht0"; /* Default i/o device name */#elsechar Magtdev[MAXPATHLEN+1]; /* Default i/o device name set in ltf.c */#endifFILE *Magtfp; /* File pntr to output device */int Maxrec; /* Maximum record size */char *Months[] = { 0, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };int M1[] = { 1, ROWN, 'r', '-' };int M2[] = { 1, WOWN, 'w', '-' };int M3[] = { 2, SUID, 's', XOWN, 'x', '-' };int M4[] = { 1, RGRP, 'r', '-' };int M5[] = { 1, WGRP, 'w', '-' };int M6[] = { 2, SGID, 's', XGRP, 'x', '-' };int M7[] = { 1, ROTH, 'r', '-' };int M8[] = { 1, WOTH, 'w', '-' };int M9[] = { 2, STXT, 't', XOTH, 'x', '-' };int *M[] = { M1, M2, M3, M4, M5, M6, M7, M8, M9 };/*_N_*/char Name[MAXPATHLEN+1];/* File name as extracted from volume */int NMEM4D = 0; /* No memory for directories flag clear */int Nodir = FALSE; /* Do not omit directory blocks from output */int Noheader3 = FALSE; /* Indicates user does not want to * use ANSI HDR3, HDR9 data. If present * on input, data will be discarded. */int Nosym = FALSE; /* Output the file with symbolic link */int Numrecs = 0; /* Number of records to process */int numdir = 0; /* Number of directories to chdir *//*_O_*/char Outbuf[MAXBLKWRT+1]; /* Output buffer for writes */char Owner[15]; /* Owner of vol and file name string *//*_P_*/int permission = FALSE; /* permission flag used if super user * on extract for chown and chmod */char *Progname; /* Program name for error messages *//*_Q_*//*_R_*/char *Rb; /* "fuf" record pointer */#ifdef U11int Reclength = MAXRECSIZE; /* Default record length */#endifint Rep_misslinks = YES; /* Reports of undumped links * are suppressed if the * -M flag is set *//*_S_*/int Secno=0; /* Position the volume to this ANSI file * section number before beginning * requested operation(s). */int Seqno=0; /* Position the volume to this ANSI file * sequence number before beginning * requested operation(s). */int skip = FALSE; /* Set skip to false and assume stop when * checking inputfile for non-existent files */char Spaces[80]; /* A string of spaces for blank fills *//*_T_*/int Tape = TRUE; /* Flags (if TRUE) that i/o device is tape, * else (FALSE) is not. */char Tape_Mark[10] = "TAPE_MARK";char Tftypes[4] = "???"; /* True Ultrix disk file type as * an ASCII string for HDR2 */int Type; /* Unix disk file type *//*_U_*/int Ultrixvol = YES;/* Flags wether or not the input volume was * thought to be created by an Ultrix system. *//*_V_*/int Verbose = NO; /* Verbose flag */char Volid[7] = "ULTRIX"; /* Tape label (ANSI VOL ID) (default for output, set to actual on input) */int Volmo = NO; /* Indicates we need to announce the volume * info and set init flags on input. *//*_W_*/int Warning = NO; /* Default mode is to overwrite * existing files without any * notification. * (normal Unix procedure) * The user may request that a * warning message be issued & * verification request issued before * overwrting the file by setting the * -W qualifier in the command. */int Wildc= FALSE; /* Used to indicate if Wildcards were * seen in a string given to mstrcmp *//*_X_*/struct XLINKBUF *X_head; /* Allocate a pointer to start of * the extracted "links" list. *//*_Y_*//*_Z_*//**\\**\\**\\**\\**\\** EOM ltfvars.c **\\**\\**\\**\\**\\*//**\\**\\**\\**\\**\\** EOM ltfvars.c **\\**\\**\\**\\**\\*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?