Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++应用程序杀死USB磁盘Access?_C++_Batch File_Usb_Dos - Fatal编程技术网

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

C++应用程序杀死USB磁盘Access?,c++,batch-file,usb,dos,C++,Batch File,Usb,Dos,我一直在做这个项目,我会尽力解释我在做什么 我将从本机DOS USB DOS引导thumbdrive运行一个bat文件,该文件启动一个程序SHOWDATA.EXE,并将该程序中的一些数据输出到一个文本文件。然后,它将启动我的应用程序,用openwatcom为DOS16Bit编译,该应用程序使用之前输出的信息修改第二个exe文件EDITED.exe。然后它应该运行新修改的exe EDITED.exe。我的测试环境是在虚拟盒中,使用USB DOS可引导驱动器。到目前为止,我的系统和程序按预期运行,直

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

我将从本机DOS USB DOS引导thumbdrive运行一个bat文件,该文件启动一个程序SHOWDATA.EXE,并将该程序中的一些数据输出到一个文本文件。然后,它将启动我的应用程序,用openwatcom为DOS16Bit编译,该应用程序使用之前输出的信息修改第二个exe文件EDITED.exe。然后它应该运行新修改的exe EDITED.exe。我的测试环境是在虚拟盒中,使用USB DOS可引导驱动器。到目前为止,我的系统和程序按预期运行,直到我显示“Finished”并希望启动新修改的exe时,我得到一个

读取驱动器C的一般故障

中止、重试、忽略、失败

此处的虚拟框还显示驱动器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);
}

我不知所措。

你正在编译C++吗?因为对我来说这看起来像C。我想我应该澄清一下,我是使用面向DOS 16位的Open Watcom V2 C/C++编译器编译的。有任何东西在运行吗?如果先运行一些内部命令并暂停,会怎么样?尝试添加cd并在开始处暂停。还请注意,for循环在DOS上不起作用。@Cookie是的,除了for/F NT扩展以外的所有内容都会正常运行。我会CD,我会DIR。我试过,也试过。我还没有先试过CD。让我重新构造成一个子目录,看看它是如何工作的。就在最后一次暂停之后,它继续运行EDITED.EXE,这就是“关于重试失败”错误出现的原因。我重新启动并运行EDITED.exe,它将以程序注入的新值运行。
TYPE D.txt | SHOWDATA.EXE > Info.txt
PAUSE
MYPROGRAM.EXE
PAUSE
EDITED.EXE