所以我是一名业余程序员,目前就读于我的第二学期C ++(昨天我们学习了结构,只是为了让你知道我所知道的......)。
我正在创建一个简单的程序来帮助我在实习期间提交文件。
我正在使用系统命令(是的,我知道它的危险和很大的安全风险),在firefox中打开一个pdf,这样我就可以看到该文件,并知道放在哪里。
我已成功打开firefox并打开了pdf。
但是我的程序停止运行,直到我关闭firefox。
我的问题是我如何同时继续我的计划?
是否有更简单的方法在可执行文件中显示pdf?
编辑: 这是我用来打开firefox窗口的函数,其中包含pdf:
void openPDFBrowser(char array []) {
ofstream outFile;
outFile.close();
outFile.open("PDF_browswer_handleScript.txt") ;
if(outFile.good())cout<<"OUTFILE GOOD" << endl;
outFile << "system("<<array<<")"<<endl;
system("PDF_browswer_handleScript.txt");
outFile.close();
}
<。> .txt文件包含:firefox C:\ Scans \ Attorney.pdf 其中firefox引用包含firefox.exe位置的.bat文件 我会采取任何建议使用外部浏览器来处理pdf文件的显示似乎更容易,尽管我仍在研究这种线程化的想法
答案 0 :(得分:3)
system
是一个阻塞命令 - 意味着它会在该函数返回之前停止执行。唯一的方法是创建一个单独的线程(或fork
一个单独的进程,如Chris Hayes所示),并运行system
(或CreateProcess
,或exec
)在其中,允许主线程继续。