📄 arcdel.c
字号:
/* * $Header: arcdel.c,v 1.3 88/04/19 01:39:32 hyc Exp $ *//* * ARC - Archive utility - ARCDEL * * Version 2.09, created on 02/03/86 at 22:53:27 * * (C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED * * By: Thom Henderson * * Description: This file contains the routines used to delete entries in an * archive. * * Language: Computer Innovations Optimizing C86 */#include <stdio.h>#include "arc.h"void abort(), rempath(), openarc(), closearc(), writehdr(), filecopy();int match(), readhdr();voiddelarc(num, arg) /* remove files from archive */ int num; /* number of arguments */ char *arg[]; /* pointers to arguments */{ struct heads hdr; /* header data */ int del; /* true to delete a file */ int did[MAXARG];/* true when argument used */ int n; /* index */ if (!num) /* she must specify which */ abort("You must tell me which files to delete!"); for (n = 0; n < num; n++) /* for each argument */ did[n] = 0; /* reset usage flag */ rempath(num, arg); /* strip off paths */ openarc(1); /* open archive for changes */ while (readhdr(&hdr, arc)) { /* while more entries in archive */ del = 0; /* reset delete flag */ for (n = 0; n < num; n++) { /* for each template given */ if (match(hdr.name, arg[n])) { del = 1; /* turn on delete flag */ did[n] = 1; /* turn on usage flag */ break; /* stop looking */ } } if (del) { /* skip over unwanted files */ fseek(arc, hdr.size, 1); if (note) printf("Deleting file: %s\n", hdr.name); } else { /* else copy over file data */ writehdr(&hdr, new); /* write out header and file */ filecopy(arc, new, hdr.size); } } hdrver = 0; /* special end of archive type */ writehdr(&hdr, new); /* write out archive end marker */ closearc(1); /* close archive after changes */ if (note) { for (n = 0; n < num; n++) { /* report unused arguments */ if (!did[n]) { printf("File not found: %s\n", arg[n]); nerrs++; } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -