remove

来自cppreference.com
< c‎ | io
 
 
文件输入/输出
类型与对象
函数
文件访问
直接输入/输出
无格式输入/输出
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)
有格式输入
 
在标头 <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 The remove function (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.21.4.1 The remove function (第 TBD 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.21.4.1 The remove function (第 302 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.19.4.1 The remove function (第 268 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.9.4.1 The remove function

参阅

重命名文件
(函数)