编写C 遇到解决Permission denied

在用C编写一个通讯录,运行结束把通讯录中的数据存到“通讯录.dat”文件里。第一遍运行没有出问题,存进去的数据也可以读出来。第二遍运行把原有通讯录数据读出进行添加。在结束程序,文件的第二次写入出错。用perror查看:Permission denied
void SaveDete(contact* pc)//保存数据
{
    //打开文件
    FILE* pf;
    errno_t Err;
    Err = fopen_s(&pf, "通讯录.dat", "w");
    if (Err==0)
    {
        printf("文件打开成功\n");
    }
    else
    {
        perror("SaveDete");
        printf("失败\n");
    }
    //存入数据
    int i = 0;
    if (pf)
    {
        for (i = 0; i < pc->sz; i++)
        {
            fwrite(pc->dete + i, sizeof(conInfo), 1, pf);
        }
    }
    //关闭文件
    if (pf)
    {
        Err = fclose(pf);
    }
    if (Err == 0)
    {
        printf("保存成功成功,无事发生\n");
    }
    else
    {
        printf("失败\n");
    }
    pf = NULL;
}

运行结果及报错内容

img

是不是第一次占用了文件IO没释放。第二次就不能写了。

程序没有写权限