Kar*_*jic 2 c optimization file bison
yyin = fopen("input_file.txt","r");
while ((nread = fread(buf, 1, sizeof buf, yyin)) > 0){
fwrite(buf, 1, nread, stdout);
}
fclose(yyin);
yyin = fopen("input_file.txt","r");
yyparse();
fclose(yyin);
Run Code Online (Sandbox Code Playgroud)
如您所见,我多次打开同一个文件.首先,我想在我的cmd/terminal中打印输出; 然后我想启动解析器.问题很明显:每个打开过程都会花费资源,但是fread和fwrite的组合似乎"清理"了我的输入文件,因此yyparse没有得到任何进一步的输入并且基本上保持空白.
您是否知道如何在不打开2个文件的情况下使其更加高效或顺畅?