ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C/C++ rmdir(2)
    C,C++ & Linux 2020. 5. 19. 12:34
    728x90

    rmdir(2) 함수 기능

    디렉토리를 지워주는 함수입니다.

    rmdir 명령어와 마찬가지로 디렉토리 내부가 빈 상태여야 삭제 가능합니다.

    함수 원형

    #include <unistd.h>
    
    int rmdir(const char *filepath)

    매개변수

    filepath

    지우고자 하는 파일의 경로

    반환값

    성공 시 0 리턴

    에러 시 -1 리턴하고 errno 설정

    예제

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <utime.h>
    
    int main(int argc, char *argv[]) {
        int fd;
    
        // mydir 내부에 hi.txt 를 만들어서 빈 디렉토리가 아니게 됨
        fd = open("mydir/hi.txt", O_RDWR | O_CREAT);
        close(fd);
    
        // 이 상태에서 지우면 에러 발생
        if (rmdir("mydir") < 0) {
            fprintf(stderr, "rmdir error\n");
        }
    
        // hi.txt 를 지워서 mydir 이 빈 디렉토리가 됨
        unlink("mydir/hi.txt");
    
        // 이 상태에서는 지울 수 있음
        if (rmdir("mydir") < 0) {
            fprintf(stderr, "rmdir error\n");
        }
    
        printf("rmdir 성공\n");
        exit(0);
    }
    

     

    결과

     

     

     

     

     

     

     

     

     

     

     

    리눅스시스템프로그래밍 저자 : 홍지만
    https://book.naver.com/bookdb/book_detail.nhn?bid=14623672

    책에 기술된 예제 프로그램입니다. 책 내부에는 훨씬 더 많은 자료가 있습니다. (개인적으로 좋았습니다.)

    'C,C++ & Linux' 카테고리의 다른 글

    C/C++ readdir(3)  (0) 2020.05.20
    C/C++ opendir(3)  (0) 2020.05.20
    C/C++ mkdir(2)  (0) 2020.05.19
    C/C++ utime(2)  (0) 2020.05.19
    C/C++ readlink(2)  (0) 2020.05.18

    댓글

Designed by Tistory.