Namespaces
Variants

remove

From cppreference.net
< c ‎ | io
ヘッダーで定義 <stdio.h>
int remove ( const char * pathname ) ;

pathname が指す文字列で識別されるファイルを削除します。

ファイルが現在いずれかのプロセスによって開かれている場合、この関数の動作は実装定義です。POSIXシステムではファイル名(ディレクトリエントリ)のリンクを解除しますが、ファイルシステムの領域は、いずれかのプロセスで開かれている間、およびファイルへの他のハードリンクが存在する間は回収されません。Windowsではこのような場合、ファイルの削除は許可されません。

目次

パラメータ

pathname - 削除するファイルを識別するパスを含む、null終端文字列へのポインタ

戻り値

0 成功時は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関数 (p: 268)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 4.9.4.1 remove関数

関連項目

ファイル名を変更する
(関数)