시스템 프로그래밍-파일 다루기

YuWan·2024년 6월 28일

linux

목록 보기
8/26

아이노드 복습

  • 디렉터리[원본파일] -> 아이노드 -> 원본 파일 데이터
  • 아이노드(i-node)라는 색인 블록을 활용한 파일 시스템
  • 아이노드 조회 $ls -i

하드 링크 파일

  • 하드 링크 생성시 같은 아이노드를 공휴하는 하드 링크 파일이 생성됨
    • 하드 링크 파일 == 원본 파일 -> 아이노드 -> 원본 파일 데이터

심볼릭 링크 파일(=소프트링크, 윈도우의 바로가기)

  • 심볼릭 링크 생성시 원본 파일을 가리키는 새로운 아이노드를 만든다.
    • 원본파일의 위치 정보를 저장하는 포인터

하드링크 파일은 원본 파일이 없어져도 유지 된다.
심볼릭 링크 파일은 원본 파일이 없어지면 원본 파일 데이터 접근 불가능

  • 하드링크는 같은 아이노드 번호를 가지는 파일 생성

    • 하드링킁 파일은 원본 파일과 같은 데이터 공유
    • 원본 파일이 삭제/이동해도 하드 링크 파일은 남아 있음
    • 여러 이름으로 파일을 참조하고 싶을 때
  • 심볼릭 링크는 원본 파일을 가리키는 파일 생성

    • 원본 파일과 같은 데이터를 공유하지 않음(원본 파일의 위치만 알뿐)
    • 원본 파일이 삭제/이동하면 심볼릭 링크 파일은 사용 불가
    • 하드 링크 파일에 비해 조작이 간편
    • 복잡한 경로에 있는 파일을 참조하고자 할 때
  • 하드링크 생성하기

    • $ln원본파일이름 하드링크파일이름
  • 심볼릭 링크 생성하기

    • ln -s 원본파일이름 심볼릭링크파일이름
  • 하드링크 생성하기

int link(const char *oldpath, const char *newpath);
  • Parameter
    • oldpath:생성하려는 디렉토리의 경로
    • newpath:생성할 하드 링크 파일 경로
  • Return
    • 성공시 0
    • 실패시 -1
  • 심볼릭링크 생성하기
int symlink(const char *target, const char *linkpath);
  • Parameter
    • target:원본 파일 경로
    • linkpath:생성하려는 심볼릭링크 파일 경로
  • Return
    • 성공시 0
    • 실패시 -1
profile
공부 블로그

0개의 댓글