C中的"remove()"函数不会删除所选文件

Pik*_*ppa 1 c file function stream

我有这个功能:

void aggiornadatabase(void) {
    FILE* fp;
    int c=0;
    char str[30];
    int m;

    sprintf(str, "%s.csv", utenti[posizioneuser].id);
    printf("%s\n", str);
    fp = fopen(str, "w");
    if (fp == NULL)
        printf("Database error\n");
    else
        m = remove(str);

    if (m == 0)
        printf("Success\n");
    else
        printf("Unable to delete the File\n");

    fclose(fp);
}
Run Code Online (Sandbox Code Playgroud)

执行此函数时,它会删除所选.csv文件中的所有内容,但它不会删除文件本身(实际上它会打印"无法删除文件").

为什么会这样?

For*_*Bru 5

文件保持打开状态,删除打开的文件是实现定义的,因此,删除可能成功也可能不成功.尝试之前,最好关闭文件remove.