static char sccsid
[] = "@(#)clri.c 2.2 %G%";
/* static char *sccsid = "@(#)clri.c 4.1 (Berkeley) 10/1/80"; */
* clri filsys inumber ...
#define ISIZE (sizeof(struct dinode))
#define NI (MAXBSIZE/ISIZE)
#define sblock sb_un.sblk
printf("usage: clri filsys inumber ...\n");
printf("cannot open %s\n", argv
[1]);
lseek(f
, SBLOCK
* DEV_BSIZE
, 0);
if (read(f
, &sblock
, SBSIZE
) != SBSIZE
) {
printf("cannot read %s\n", argv
[1]);
if (sblock
.fs_magic
!= FS_MAGIC
) {
printf("bad super block magic number\n");
for (i
= 2; i
< argc
; i
++) {
if (!isnumber(argv
[i
])) {
printf("%s: is not a number\n", argv
[i
]);
printf("%s: is zero\n", argv
[i
]);
off
= fsbtodb(&sblock
, itod(&sblock
, n
)) * DEV_BSIZE
;
if (read(f
, (char *)buf
, sblock
.fs_bsize
) != sblock
.fs_bsize
) {
printf("%s: read error\n", argv
[i
]);
for (i
= 2; i
< argc
; i
++) {
printf("clearing %u\n", n
);
off
= fsbtodb(&sblock
, itod(&sblock
, n
)) * DEV_BSIZE
;
read(f
, (char *)buf
, sblock
.fs_bsize
);
for (k
= 0; k
< ISIZE
; k
++)
write(f
, (char *)buf
, sblock
.fs_bsize
);