CafeM0ca

[리눅스]파일 디스크립터 본문

OS/리눅스

[리눅스]파일 디스크립터

M0ca 2017. 12. 12. 22:53
반응형

컴퓨터 프로그래밍에서 파일 디스크립터는 종류에 상관없이 파일에 접근하기 위한 추상적인 지시자이다. - wikipedia

파일 디스크립터는 3개의 표준 스트림이 있다.

정수 값

이름

<unistd.h>에 정의된 상수

<stdio.h> 파일 스트림

0

표준 입력

STDIN_FILENO

stdin

1

표준 출력

STDOUT_FILENO

stdout

2

표준 에러

STDERR_FILENOstderr

표 출처: wikipedia


표준 입력은 키보드로부터 이루어 지고 출력과 에러는 모니터를 통해 이루어진다.

프로세스들의 파일 디스크립터 테이블의 0,1,2번은 이미 위의 표준으로 예약되있어서 3번부터 쓸 수 있다. -1은 오류

쉘에서 실행한 프로세스가 0~2번만 사용된다는 것은 프로세스마다 개별적인 파일 디스크립터 테이블을 가지고 있다는 것. init프로세스로부터 fork()를 통해 복사된 것임을 있다. 부모 자식간 프로세스간 파일 디스크립터 복사,공유가 가능하다. 

fclose로 fd구조체를 닫아주지 않으면 fork된 자식 프로세스에서 접근이 가능하다. //ctf에서 쓰이더라



+파일시스템과 병행하여 이해가 필요




반응형
Comments