remove
From cppreference.net
File input/output
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<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関数
関連項目
|
ファイル名を変更する
(関数) |
|
|
C++ documentation
for
remove
|
|