C언어 header/unistd.h
rmdir(2) - directory 삭제하기
자연&사람
2019. 10. 4. 14:01
반응형
rmdir(2)
#include <unistd.h>
int rmdir(const char *pathname);
비어 있는 디렉토리를 삭제합니다. 만약, 디렉토리에 다른 디렉토리나 파일이 있으면, 삭제를 하지 않습니다. UNIX / LINUX 표준 C에서는 비어 있지않는 디렉토리 전체를 삭제하는 함수는 제공하지 않습니다.
파라미터
pathname
- 삭제할 디렉토리에 대한 절대 또는 상대 경로
RETURN
0
- 정상적으로 디렉토리가 삭제되었습니다.
-1
- 오류가 발생하였으며, 상세한 오류는 errno에 저장됩니다.
EACCES : 생성하려는 부모 디렉토리에 쓰기 권한이 없음.
EBUSY : 어떤 프로세스가 삭제 금지시켰거나, mount point 인 경우.
EDQUOT : 사용자에게 할당된 inode수 또는 disk block 등이 file system에서 고갈됨.
EEXIST : 이미 있는 디렉토리임.
EFAULT : pathname이 접속가능한 메모리가 아님.
EINVAL : pathname이 유효하지 않음. 삭제하려는 디렉토리가 . 임
ENAMETOOLONG : pathname이 너무 김.
ENOTDIR : pathname에 디렉토리가 아닌 것이 있음.
ENOTEMPTY : pathname 디렉토리에 . 또는 .. 이외의 디렉토리 및 파일이 존재함.
EPERM : pathname에 directory 생성을 지원하지 않음.
EROFS : read only 파일 시스템임.
활용 예제
Sample
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
char path[1024] = "sample";
if(rmdir(path) == -1) {
fprintf(stderr, "%s directory remove error: %s\n", path, strerror(errno));
return -1;
}
......
see also : Directory 정보 조회 및 관리 Library
반응형