删除多种属性文件一例

Author: 刘骏洪 Date: 1999年 第11期 13版

    我用Turbo C 2.0编写了一个可以删除任何属性文件的程序。这个程序的思路是:首先找到需删除文件的地址,(即段地址和偏移地址),接着把文件属性修改为A,最后进行删除,这就像DOS中先用Attrib 命令修改文件属性后,再用DEL命令进行删除。源程序如下:
    #include ″stdio.h″
    #include ″process.h″
    #include ″dos.h″
    main()
    {
    char filename[12];
    printf(″Please input filename″);
    gets(filename);/*输入要删除的文件名*/
    change (filename);
    delete(filename);
    }
    change(char near *file)/*改变文件属性函数*/
    {
    union REGS inregs,outregs;
    struct SREGS segregs;
    inregs.h.ah=Ox43;/*功能号AH=Ox43*/
    inregsh.al=1;/*入口参数AL=1*/
    inregs.h.cl=FA_ARCH;/*把文件属性修改为A*/
    segregs.ds=FP_SEG(file);/*描述偏移地址*/
    inregs.x.dx=FP_OFF(file);/*描述表段地址*/
    int86x(Ox21,&inregs,&outregs,&segregs);/*INT 21H系统功能调用*/
    return;
    }
    delete(char near*file)
    {
    union REGS inregs,outregs;
    struct SREGS segregs;
    inregs.h.ah=Ox41;/*功能号AH=Ox43*/
    inregs.x.dx=FP_OFF(file);
    segregs.ds=FP_SEG(file);
    int86x(Ox21,&inregs,&outsegs,&segregs);
    return;}