C ++应用程序杀死USB磁盘访问?

时间:2013-12-13 19:30:52

标签: c++ batch-file usb dos

我一直致力于这个项目,我会尽力解释我在做什么。

我将从本机DOS(USB DOS Boot thumbdrive)运行一个启动程序(SHOWDATA.EXE)的bat文件,并将该程序中的一些数据输出到文本文件。然后它将启动我的应用程序(使用Open-Watcom为DOS16Bit编译),它使用之前输出的信息修改第二个exe文件(EDITED.EXE)。然后它应该运行新修改的exe(EDITED.EXE)。我的测试环境已经在Virtual Box中并使用USB DOS可启动驱动器。到目前为止,我的系统和程序按预期运行,直到我显示'完成'并想要启动新修改的exe的行,我得到了

  

读取驱动器C的一般故障

     

中止,重试,忽略,失败?

Virtual Box此处还显示驱动器A(软盘驱动器A)的写入错误

如果我重新启动系统,我可以毫无问题地运行新修改的文​​件并获得所需的结果。

我打开或编辑或关闭导致此行为的文件的方式是否有问题?

#include <stdio.h>
#include <string.h>

int main(void)

{
    FILE * pFile;
    char data1[11];
    char data2[33];

    pFile = fopen ("testfile.exe","r+b");

    printf ("PROGAM TITLE TEXT\n");
    printf ("2013\n");
    printf ("\n");

    printf("Enter 10 Digit String from 1st filed above:\n"); //From previous program output
    scanf ("%10s",data1);         //only read 10 Chars

    printf("Enter 32 Digits from 2nd field above:\n"); //From previous program output
    scanf ("%32s",uuid);       //only read 32 Chars

    fseek (pFile,24523,SEEK_SET);//file offset location to begin write
    fputs (sn,pFile);            //Write our data!

    fseek (pFile,24582,SEEK_SET);//file offset location to begin write
    fputs (uuid,pFile);          //Write our data!

    fseek (pFile,24889,SEEK_SET);//file offset location to begin write
    fputs (uuid,pFile);          //Write our data!

    fclose(pFile);               //Close our file

    printf ("Finished\n");
    return(0);
}

我的Bat文件看起来像这样,我将一个变量从文本文件“D.txt”传递给SHOWDATA.EXE并将输出写入info.txt。然后我用FOR / F解析info.txt以仅显示将用于编辑第二个exe文件(EDITED.EXE)的有用信息。然后它将启动已编辑的exe文件。

TYPE D.txt | SHOWDATA.EXE > Info.txt
PAUSE
MYPROGRAM.EXE
PAUSE
EDITED.EXE

我很茫然。

0 个答案:

没有答案