728x90

FD 2

파일 디스크립터(TCP/IP 측면)

파일 디스크립터(TCP/IP 측면)리눅스/유닉스 계열 OS에서 열린 파일, 소켓, 파이프 등의 리소스를 식별하기 위한 정수형 번호이다.Ex)0: 표준 입력(stdin)1: 표준 출력(stdout)2: 표준 에러(stderr)그 외의 3부터는 프로세스에서 새로 연 리소스 들이다.UNIX 철학UNIX 철학에는 ‘모든 것이 파일’이라는 원칙이 있습니다.파일, 소켓 모두 내부적으로 커널 레벨에서 I/O 버퍼와 디스크럽터 테이블을 통해 이뤄집니다. 그래서 소켓도 파일처럼 read(), write(), close() 등의 시스템 콜을 사용할 수 있습니다.해당되는 파일 디스크럽터를 TCP/IP 소켓과 연관지어서 설명하면 다음과 같습니다.1. 서버 소켓 생성int listenfd = socket(AF_INET, SOC..

컴퓨터 시스템 10장(시스템 수준 입출력)

유닉스는 모든 것은 파일이다.모든 언어의 런타임 시스템은 입출력을 수행하기 위한 고급 기능들을 제공한다. C는 버퍼를 통해 I/O를 수행하는 printf, scanf 같은 함수들을 표준 I/O 라이브러리에서 제공한다. 리눅스에서는 이러한 고급 I/O 함수들은 커널이 제공하는 시스템 수준 Unix I/O 함수들을 사용해서 구현되어 있다. 결국 이러한 I/O도 파일을 통해 구현이 되어 있다.10.1 Unix I/O리눅스에서 파일은 연속된 m개의 바이트이다.네트워크, 디스크, 터미널 같은 모든 I/O 디바이스들은 파일로 모델링되며, 모든 입력과 출력은 해당 파일을 읽거나 쓰는 형식으로 수행된다.파일 열기응용은 I/O 디바이스에 접근하겠다는 의도를 해당 파일을 열겠다고 커널에 요청하는 방법으로 알린다.커널은 식..

728x90