파일 디스크립터와 파일 포인터


인자로 파일경로와 모드 입력받음
성공시 파일포인터
실패시 NULL
인자로서 파일 포인터를 받음
성공시 0
실패시 EOF
fd: 파일 디스크립터
성공시: 파일 포인터
실패시 NULL
stream : 파일 포인터
성공시: 파일디스크립터
실패시 -1

stream: 파일포인터, format: 입력포맷
성공시 입력받은 item 개수
실패시 EOF


s: 문자열 버퍼, size: 버퍼 크기, stream: 파일 포인터
성공시 문자열을 가르키는 포인터
실패시 NULL







디렉터리 생성하기


파일에 대한 모든것을 가지고 있는 색인 블럭
생겨난 근본적인 이유?🤔 => 외부단편화!

아이노드라는 색인 블록을 활용해 연속적으로 블록에 저장해 외부단편화 해결할 수 있음!

하드링크 생성시 같은 아이노드를 공유하는 하드 링크 파일이 생성됨.
하드링크와 원본 파일은 같음
아이노드도 같고, 데이터의 실질 위치, 값도 같거든.
여러 이름으로 파일을 참조하고 싶을때 사용

원본파일의 포인터
원본파일과 같은 데이터를 공유하지 않음.
원본파일이 삭제/이동하면 심볼릭 링크도 사용불가.
복사된 경로에 있는 파일을 참조하고자 할 때




SHARED 매핑을 하면 원본에 작업을 한다는것. -> IPC(프로세스간의 통신) -> 임계구역과 동기화를 염두해둬야함.
대부분 NULL 주긴함.


프로세스 메모리 영역에 파일 내용 일부에 대응시키는것
디스크에 있는 파일에 읽고 쓰는것이 아니라 '프로세스 메모리 영역' 에 읽고 쓰기
두개 이상의 프로세스가 같은 영역을 매핑할 경우 다른 프로세스와의 통신가능!
매핑은 페이지의 배수의 크기로 이루어짐
프로세스와 스레드 다루기



