Namespaces
Variants

remove

From cppreference.net
< c ‎ | io
定义于头文件 <stdio.h>
int remove ( const char * pathname ) ;

删除由指向字符串的指针 pathname 所标识的文件。

若文件当前正被任何进程打开,此函数的行为由实现定义。POSIX系统会取消链接文件名(目录项),但文件占用的文件系统空间在其被任何进程打开期间以及存在其他硬链接时不会被回收。Windows系统在此类情况下不允许删除文件。

目录

参数

pathname - 指向以空字符结尾的字符串的指针,该字符串包含用于标识待删除文件的路径

返回值

0 表示成功,非零值表示错误。

注释

POSIX标准 针对此函数的行为规定了大量额外细节。

示例

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE* fp = fopen("file1.txt", "w"); // 创建文件
    if (!fp)
    {
        perror("file1.txt");
        return EXIT_FAILURE;
    }
    puts("Created file1.txt");
    fclose(fp);
    int rc = remove("file1.txt");
    if (rc)
    {
        perror("remove");
        return EXIT_FAILURE;
    }
    puts("Removed file1.txt");
    fp = fopen("file1.txt", "r"); // 失败:文件不存在
    if (!fp)
        perror("Opening removed file failed");
    rc = remove("file1.txt"); // 失败:文件不存在
    if (rc)
        perror("Double-remove failed");
    return EXIT_SUCCESS;
}

可能的输出:

Created file1.txt
Removed file1.txt
Opening removed file failed: No such file or directory
Double-remove failed: No such file or directory

参考文献

  • C23 标准 (ISO/IEC 9899:2024):
  • 7.21.4.1 remove 函数 (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018):
  • 7.21.4.1 remove 函数 (p: TBD)
  • C11 标准 (ISO/IEC 9899:2011):
  • 7.21.4.1 remove 函数 (p: 302)
  • C99标准(ISO/IEC 9899:1999):
  • 7.19.4.1 remove函数(页码:268)
  • C89/C90 标准 (ISO/IEC 9899:1990):
  • 4.9.4.1 remove 函数

参见

重命名文件
(函数)
C++ 文档 关于 remove