일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 컴퓨터구조
- c언어
- MSA
- JavaScript
- JPA
- IT
- Algorithm
- redis
- Proxy
- Galera Cluster
- OS
- react
- 네트워크
- Heap
- C
- 알고리즘
- spring webflux
- Kafka
- Data Structure
- MySQL
- 운영체제
- 자료구조
- 파이썬
- 자바
- mongoDB
- 디자인 패턴
- design pattern
- Spring
- Java
- 백준
Archives
- Today
- Total
시냅스
C언어 fd : 파일 디스크립터 (File Descriptor) 본문
파일 디스크립터 (File Descriptor)
Unix OS에서 모든 것은 파일로 관리되는데 이러한 파일에 접근할 때 파일 디스크립터 라는 개념을 이용한다.
파일은 일반적인 정규 파일, 디렉토리, 소켓, 파이프, 블록 디바이스, 캐릭터 등등 모든 객체들을 파일이라 칭한다.
0을 포함한 양수인 정수만을 값으로 하고,
- 0 : 표준 입력 (Standard Input, STDIN_FILENO)
- 1 : 표준 출력 (Standard Output, STDOUT_FILENO)
- 2 : 표준 에러 (Standard Error, STDERR_FILENO)
를 기본적으로 할당 받는다.
FD는 숫자로, FD 테이블의 인덱스를 의미하기 때문에
FD가 3으로 반환됐을 경우, File Descriptors table에 3번 항목이 가리키는 파일이라고 생각할 수 있다.
FD table은 프로세스 단위로 할당되어 각 프로세스는 저마다의 FD table을 가지고 있는데,
FD table의 각 칸들은 FD flag와 pointer 를 가지고 있어,
파일을 참조할 수 있고,mode 와 inode table pointer 의 Offset 을 가지고 있다.
inode table 은 소유자 그룹, 접근 모드(읽기, 쓰기, 실행 권한), 파일 형태, 아이 노드 숫자 등 파일에 관한 정보를 갖고 있다.
inode는 파일을 기술하는 디스크 상의 데이터 구조로
파일의 데이터 블록이 디스크 상의 어느 주소에 있는 가와 같은 정보를 갖고 있고,
각각의 Inode는 고유 번호(inode number)를 가지고 있어 파일을 식별할 때 사용한다.
ls -i # inode number
'C' 카테고리의 다른 글
C언어 Struct : 구조체, 구조체 포인터, 구조체 메모리 (0) | 2022.03.20 |
---|---|
C언어 restrict 포인터, static 키워드 (0) | 2022.03.12 |
Makefile : 컴파일을 쉽게 하자! (0) | 2022.03.10 |
C언어 파일 모드 정리 (0) | 2022.01.01 |
C언어 string 관련 함수 정리 (0) | 2021.12.29 |
Comments