Tuesday, December 12, 2006
C언어] 파일 지우기, 파일 삭제 함수 사용법; Delete File, Remove File
_unlink() 함수로 파일을 지울 수 있습니다. 그러나 읽기 전용 속성의 파일이거나, 디렉토리일 경우에는 지울 수 없고, "Access is denied (접근이 거부되었다)" 라는 에러가 납니다.
소스 파일명: 0.cpp
(현재 디렉토리의 test_9999.txt 라는 파일을 지우는 예제입니다.)
_unlink() 함수는, 삭제에 성공했을 때는 0을, 실패했을 때는 -1을 반환합니다.
unlink() 가 아닌 _unlink() 함수를 사용하는 것이 좋습니다.
위의 예제 컴파일 및 실행 결과 화면:
첫번째 실행 때 test_9999.txt 라는 파일을 지웠기에, 두번째 실행 때는 Could not find (파일을 찾을 수 없다) 라는 에러가 났습니다.
디렉토리 지우기: ▶▶ C언어] 디렉토리 지우기, 폴더 삭제 함수 사용법; Delete Directory, Remove Folder
C: 파일 지우기, 삭제 예제, _unlink(), unlink()
소스 파일명: 0.cpp
(현재 디렉토리의 test_9999.txt 라는 파일을 지우는 예제입니다.)
#include <stdio.h>
#include <errno.h>
int main(void) {
char s[] = "test_9999.txt";
if (_unlink(s)) {
switch (errno) {
case EACCES:
fprintf(stderr, "Access is denied: %s\n", s); break;
case ENOENT:
fprintf(stderr, "Could not find: %s\n", s); break;
default:
fprintf(stderr, "Unknown error.\n"); break;
}
} else
printf("Deleted: %s\n", s);
}
#include <errno.h>
int main(void) {
char s[] = "test_9999.txt";
if (_unlink(s)) {
switch (errno) {
case EACCES:
fprintf(stderr, "Access is denied: %s\n", s); break;
case ENOENT:
fprintf(stderr, "Could not find: %s\n", s); break;
default:
fprintf(stderr, "Unknown error.\n"); break;
}
} else
printf("Deleted: %s\n", s);
}
_unlink() 함수는, 삭제에 성공했을 때는 0을, 실패했을 때는 -1을 반환합니다.
unlink() 가 아닌 _unlink() 함수를 사용하는 것이 좋습니다.
위의 예제 컴파일 및 실행 결과 화면:
D:\Z>cl /nologo 0.cpp && 0.exe
0.cpp
Deleted: test_9999.txt
D:\Z>cl /nologo 0.cpp && 0.exe
0.cpp
Could not find: test_9999.txt
D:\Z>
0.cpp
Deleted: test_9999.txt
D:\Z>cl /nologo 0.cpp && 0.exe
0.cpp
Could not find: test_9999.txt
D:\Z>
첫번째 실행 때 test_9999.txt 라는 파일을 지웠기에, 두번째 실행 때는 Could not find (파일을 찾을 수 없다) 라는 에러가 났습니다.
디렉토리 지우기: ▶▶ C언어] 디렉토리 지우기, 폴더 삭제 함수 사용법; Delete Directory, Remove Folder
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home