【C言語入門】removeの使い方

こんにちは、もがちゃんです。

今回は、C言語でファイルを削除する際に使用するremoveの使い方を簡単なサンプルプログラムとともに説明します。

removeの構文

#include <stdio.h>
int remove(const char *filename);

removeの説明

removeは、filenameが指すファイル名を削除します。

remove関数は、filenameが指す文字列を名前とするファイルへの、その名前によるアクセスを不可能にする。remove関数の呼出し後は、その名前のファイルを再び生成しない限り、同じ名前を使ったファイルのオープンは、失敗する。そのファイルがオープンされているときのremove関数の動作は、処理系定義とする。

JISX3010 プログラム言語C
filename

削除したいファイル名の文字列ポインタを指定します。

返却値

ファイル削除に
成功した場合、0を返します。
失敗した場合、0以外を返します。

removeの使い方サンプル

removeを使ってファイルを削除する簡単なサンプルプログラムを紹介します。

サンプルプログラムとその実行結果
#include <stdio.h>
#include <errno.h>
#include <string.h>

int main(void) {
    /* グローバル変数のerrnoをクリア */
    errno = 0;

    /* 空のファイルを作成する */
    FILE *fp = fopen("dummy.txt", "w");
    if (fp != NULL) {
        fclose(fp);
        fprintf(stdout, "fopen success fp=[%lx]\n", (long)fp);

        // 作成したファイルを削除する
        int rc = remove("dummy.txt");
        fprintf(stdout, "remove rc=[%d]\n", rc);
        if(rc == 0) {
            // 削除したファイルをOpenしてみる
            fp = fopen("dummy.txt", "r");
            if (fp != NULL) {
                fprintf(stdout, "why open success?\n");
                fclose(fp);
            } else {
                fprintf(stdout, "file open error![%s]\n", strerror(errno));
                // 削除したファイルを削除してみる
                rc = remove("dummy.txt");
                if(rc == 0) {
                    fprintf(stdout, "why remove success?\n");
                } else {
                    fprintf(stdout, "file remove error![%s]\n", strerror(errno));
                }
            }
        } else {
            fprintf(stdout, "remove error![%s]\n", strerror(errno));
        }
    } else {
        fprintf(stdout, "file create error![%s]\n", strerror(errno));
    }
}
removeを使ったサンプルプログラムの実行結果
removeを使ったサンプルプログラムの実行結果

removeの使い方まとめ

  • filenameには、削除したい相対・絶対パス付きファイル名を指定します。
  • ファイル削除が成功した場合は、返却値として 0 が返される。
  • removeが成功した後、ファイルを戻すことは出来ないのでremoveの使用には十分に注意すること。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA