ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C/C++ rename(2)
    C,C++ & Linux 2020. 5. 18. 17:03
    728x90

    rename 함수 기능

    파일의 이름을 바꿔주는 함수입니다.

    함수 원형

    #include <stdio.h>
    
    int rename(const char *oldname const char *newname);

    매개변수

    oldname

    이름을 변경할 대상 파일의 이름(경로)

     

    newname

    새로운 이름(경로)

    반환값

    성공 시 0 리턴

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

    예제

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    
    int main(int argc, char *argv[]) {
        int fd;
    
        // 파일을 열자마자 닫음 (잘 열리는지 확인용)
        fd = open(argv[1], O_RDONLY);
        close(fd);
    
        // 파일명 바꾸기
        rename(argv[1], argv[2]);
    
        // 바꾼 뒤로는 기존이름으로는 파일이 열리지 않음
        if ((fd = open(argv[1], O_RDONLY)) < 0) {
            fprintf(stderr, "%s 는 존재하지 않는 파일입니다.\n", argv[1]);
        } else
            close(fd);
    
        // 바꾼 이름으로만 파일이 열림
        if ((fd = open(argv[2], O_RDONLY)) < 0) {
            fprintf(stderr, "%s open error\n", argv[2]);
            exit(1);
        }
    
        printf("성공\n");
    
        exit(0);
    }
    

     

    결과

     

     

     

     

     

     

     

     

     

     

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

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

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

    C/C++ readlink(2)  (0) 2020.05.18
    C/C++ symlink(2)  (0) 2020.05.18
    C/C++ remove(3)  (0) 2020.05.18
    C/C++ link(2) unlink(2)  (0) 2020.05.18
    하드링크, 심볼릭링크  (0) 2020.05.18

    댓글

Designed by Tistory.