c - C中函数 "remove()"不删除选中的文件

标签 c function file 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);
}

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

为什么会这样?

最佳答案

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

关于c - C中函数 "remove()"不删除选中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44291574/

相关文章:

c - 仅交换两个字符串的第一个字符

function - 在编写小函数时避免意大利面条式代码

file - Tomcat环境下Java JSP应用文件定位最佳实践

c++ - 如何在 C++ 中正确读取和写入二进制文件中的对象

android - 在Android-ndk中,如何在调用dlclose()时调用_fini()?

c - C中的LCM和GCD使用递归或普通方法

javascript - 在没有事件的情况下从 HTML 执行 javascript 函数

scala - A<:< SomeType parameter declaration

c++ - 比较两个文件,找到差异吗?

c - 使用递归卡在C中2个数字的GCD