← 질문 목록
#320깊이 0
파일 디스크립터 3은 무엇을 가리키는가?
운영체제심화
숫자 하나가 파일을 직접 가리키지 않는다. 표를 몇 겹 지나야 닿는다. 일반 파일이면 아래처럼 세 겹이고, 소켓이나 파이프면 마지막 겹이 다르다.
프로세스별 표
3번 칸에 화살표가 있다
열린 파일 표
어디까지 읽었는지와 열 때 준 옵션
아이노드
실제 파일. 크기와 블록 위치
가운데 표가 있는 이유는 같은 파일을 두 번 열면 읽는 위치가 따로여야 하기 때문이다. 각자 자기 자리를 기억한다.
dup으로 복제하면 다르다. 새 번호가 생기지만 가운데 표의 같은 칸을 가리킨다. 그래서 한쪽에서 읽으면 다른 쪽 위치도 함께 움직인다.
2>&1이 되는 것도 이 구조 덕이다. 2번 칸이 1번 칸과 같은 곳을 보게 만드는 일이다.
0, 1, 2도 먼저 열린 파일 디스크립터일 뿐이다. 그냥 먼저 열려 있을 뿐이고 닫으면 다음 열기가 그 번호를 받는다.