こんにちは、もがちゃんです。
今回は、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を使ってファイルを削除する簡単なサンプルプログラムを紹介します。
サンプルプログラムとその実行結果

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