c++在PPC环境循环新建文件问题?急

suhu42142   2009-7-20 18:42 楼主
环境是VC++2005+Mobile5
for(i=0;i<340;i++)
{
        sprintf(cFile,"map%d.dat",i);
        CreateMap(cFile);
}
void CreateMap(LPSTR lpszFileName)
{
        FILE *fpmap = NULL;
        fpmap=SaveFile(lpszFileName);
        //....
        CloseFile(fpmap);
}
FILE *SaveFile(LPSTR lpszFileName)
{
        fp = fopen(lpszFileName, "wb");
        if (fp == NULL)
        {
                TerminateOnError("不能写到文件: %s!\n",lpszFileName);
        }
        return fp;
}
void CloseFile(FILE *fp)
{
        fclose(fp);fp = NULL;
}
问题是循环不到头fopen就不能写到文件,不定哪一个,难道说有什么限制,怎么解决呀

回复评论 (4)

VC++ exist c sentence?
点赞  2009-7-20 19:31
看看返回的错误吧,是不是资源不足了啊
点赞  2009-7-20 21:37
返回错误编号5文件访问被拒绝,另外我发现CloseFile(FILE *fp)函数内关闭文件的话,函数执行后fp还不为空,直接调用fclose(fp);fp = NULL;或者CloseFile(FILE **fp),fp为空。
我在CreateMap中直接调用fopen,fclose就不存在文件访问被拒绝了,难道这种用法有问题??求解
新的问题:CreateMap中需要用到LPBYTE buf = NULL;buf = (LPBYTE)malloc(iSize);....
fwrite(buf, iFileLen, 1, fp);free(p);p=NULL;不出现文件访问被拒绝后,再建到200左右个文件时提示buf分配内存失败??在用过后我释放了呀,难道说频繁malloc也会出错???
点赞  2009-7-21 09:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复