/* * rmlnk.C リンクレコード全消去 */ #include #include #include #include #include ERR main(W argc, TC *argv[]) { WERR fd, err = ER_PAR; LINK link; /* 引数の指定が間違っていたらヘルプを表示して終了 */ if(argc != 2) { printf("usage: rmlnk [filename]\n"); goto fin; } /* ファイル名からリンクを取得 */ if((err = get_lnk(argv[1], &link, F_NORM)) < 0) { printf("get_lnk(): (%d)\n", err); goto fin; } /* ファイルをオープン */ if((fd = opn_fil(&link, F_WRITE | F_EXCL, NULL)) < 0) { printf("opn_fil(): (%d)\n", err); goto fin; } /* 片っ端からリンクレコードを削除 */ while((err = fnd_rec(fd, F_TOPEND, 1 << 0, 0, NULL)) >= 0) { if((err = del_rec(fd)) < 0) { printf("del_rec(): (%d)\n", err); break; } } /* fin1: */ cls_fil(fd); fin: return err; }