Use err(3). Correct usage string. Change default tape to /dev/rst0.

This commit is contained in:
Philippe Charnier 1997-08-14 06:41:00 +00:00
parent d1e224f2cc
commit 54d183e244
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=28198
3 changed files with 31 additions and 41 deletions

View File

@ -33,4 +33,4 @@
* @(#)pathnames.h 8.1 (Berkeley) 6/6/93
*/
#define _PATH_DEFTAPE "/dev/rmt0"
#define _PATH_DEFTAPE "/dev/rst0"

View File

@ -38,7 +38,7 @@
.Nm tcopy
.Nd copy and/or verify mag tapes
.Sh SYNOPSIS
.Nm tcopy
.Nm
.Op Fl cvx
.Op Fl s Ar maxblk
.Oo Ar src Op Ar dest
@ -49,7 +49,7 @@ is designed to copy magnetic tapes. The only assumption made
about the tape is that there are two tape marks at the end.
.Nm Tcopy
with only a source tape
.Pf ( Ar rmt0
.Pf ( Ar /dev/rst0
by default) specified will print
information about the sizes of records and tape files. If a destination
is specified a copy will be made of the source tape. The blocking on the

View File

@ -32,13 +32,17 @@
*/
#ifndef lint
static char copyright[] =
static const char copyright[] =
"@(#) Copyright (c) 1985, 1987, 1993\n\
The Regents of the University of California. All rights reserved.\n";
#endif /* not lint */
#ifndef lint
#if 0
static char sccsid[] = "@(#)tcopy.c 8.2 (Berkeley) 4/17/94";
#endif
static const char rcsid[] =
"$Id$";
#endif /* not lint */
#include <sys/types.h>
@ -46,6 +50,7 @@ static char sccsid[] = "@(#)tcopy.c 8.2 (Berkeley) 4/17/94";
#include <sys/ioctl.h>
#include <sys/mtio.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
@ -65,7 +70,7 @@ FILE *msg = stdout;
void *getspace __P((int));
void intr __P((int));
void usage __P((void));
static void usage __P((void));
void verify __P((int, int, char *));
void writeop __P((int, int));
@ -89,7 +94,7 @@ main(argc, argv)
case 's':
maxblk = atoi(optarg);
if (maxblk <= 0) {
fprintf(stderr, "tcopy: illegal block size\n");
warnx("illegal block size");
usage();
}
guesslen = 0;
@ -123,19 +128,15 @@ main(argc, argv)
op = COPY;
inf = argv[0];
if ((outp = open(argv[1], op == VERIFY ? O_RDONLY :
op == COPY ? O_WRONLY : O_RDWR, DEFFILEMODE)) < 0) {
perror(argv[1]);
exit(3);
}
op == COPY ? O_WRONLY : O_RDWR, DEFFILEMODE)) < 0)
err(3, "%s", argv[1]);
break;
default:
usage();
}
if ((inp = open(inf, O_RDONLY, 0)) < 0) {
perror(inf);
exit(1);
}
if ((inp = open(inf, O_RDONLY, 0)) < 0)
err(1, "%s", inf);
buff = getspace(maxblk);
@ -155,10 +156,7 @@ main(argc, argv)
if (nread >= 0)
goto r1;
}
fprintf(stderr, "read error, file %d, record %ld: ",
filen, record);
perror("");
exit(1);
err(1, "read error, file %d, record %ld", filen, record);
} else if (nread != lastnread) {
if (lastnread != 0 && lastnread != NOCOUNT) {
if (lastrec == 0 && nread == 0)
@ -184,17 +182,13 @@ r1: guesslen = 0;
}
nw = write(outp, buff, nread);
if (nw != nread) {
fprintf(stderr,
"write error, file %d, record %ld: ",
filen, record);
if (nw == -1)
perror("");
else
fprintf(stderr,
"write (%d) != read (%d)\n",
nw, nread);
fprintf(stderr, "copy aborted\n");
exit(5);
if (nw == -1) {
warn("write error, file %d, record %ld", filen, record);
} else {
warnx("write error, file %d, record %ld", filen, record);
warnx("write (%d) != read (%d)", nw, nread);
}
errx(5, "copy aborted");
}
}
size += nread;
@ -247,7 +241,7 @@ verify(inp, outp, outb)
if (inn >= 0)
goto r1;
}
perror("tcopy: read error");
warn("read error");
break;
}
r1: if ((outn = read(outp, outb, outmaxblk)) == -1) {
@ -257,7 +251,7 @@ r1: if ((outn = read(outp, outb, outmaxblk)) == -1) {
if (outn >= 0)
goto r2;
}
perror("tcopy: read error");
warn("read error");
break;
}
r2: if (inn != outn) {
@ -303,10 +297,8 @@ getspace(blk)
{
void *bp;
if ((bp = malloc((size_t)blk)) == NULL) {
fprintf(stderr, "tcopy: no memory\n");
exit(11);
}
if ((bp = malloc((size_t)blk)) == NULL)
errx(11, "no memory");
return (bp);
}
@ -318,15 +310,13 @@ writeop(fd, type)
op.mt_op = type;
op.mt_count = (daddr_t)1;
if (ioctl(fd, MTIOCTOP, (char *)&op) < 0) {
perror("tcopy: tape op");
exit(6);
}
if (ioctl(fd, MTIOCTOP, (char *)&op) < 0)
err(6, "tape op");
}
void
static void
usage()
{
fprintf(stderr, "usage: tcopy [-cvx] [-s maxblk] src [dest]\n");
fprintf(stderr, "usage: tcopy [-cvx] [-s maxblk] [src [dest]]\n");
exit(1);
}