ssize_t read(int fd, void *buf, size_t bytes)
운영체제가 만든 파일 또는 소켓의 지칭을 편히 하기 위해서 부여된 숫자이다. 시스템으로 부터 할당 받은 파일이나 소켓을 대표하는 음의 아닌 정수이다.
기본적으로 파일 디스크립터는 정수형으로 차례로 넘버링 되고 0,1,2는 이미 고정 할당되어 있어서 파일 오픈 or 소켓 생성시 부여되는 파일 디스크립터는 3부터 시작한다.
0 : Standard Input (표준 입력)
1 : Standard Output (표준 출력)
2 : Standard Error (표준 에러)
fd의 최대값 : OPEN_MAX 라는 값이다.
즉, 하나의 프로세스 당 최대 OPEN_MAX개의 파일을 열 수 있다. OPEN_MAX 값은 플랫폼에 따라 다르다.
< OPENMAX 확인 하는 방법>
**터미널에서 getconf 명령어로 확인**
< read 함수의 사용법 >
정적 변수는 프로그램이 종료되지 않는 한 메모리가 소멸되지 않는다 (정적변수의 lifetime - 프로그램이 죽을때 까지).
static 이라는 키워드가 반드시 붙으며, 해당 변수가 선언된 scope에 따라서 접근 가능한 범위가 결정된다. 하기와 같이 선언됨.
static char buf[BUFFER_SIZE]
다른 파일에서는 접근 할 수 없으며, 오직 해당 파일 내에서만 scope에 맞게 접근이 가능하다.
정적 변수는 초깃값을 지정하지 않으면 0으로 자동 초기화 된다. 또한 초기화 할때 반드시 상수로 초기화 해야 한다.
정적 변수(전역, 지역)는 프로그램이 시작될 때 생성 및 초기화되고 프로그램이 끝날 때 사라진다.
출처 :
https://mong9data.tistory.com/111
https://velog.io/@hidaehyunlee/GetNextLine-%EC%82%BD%EC%A7%88%EC%9D%98-%EA%B8%B0%EB%A1%9D
https://code4human.tistory.com/123
https://chfhrqnfrhc.tistory.com/entry/%EC%A0%84%EC%97%AD%EB%B3%80%EC%88%98%EC%99%80-%EC%A0%84%EC%A0%81%EB%B3%80%EC%88%98