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

 

블로그 이미지

사용자 자연&사람

행복한 개발자 programmer since 1995.

댓글을 달아 주세요