주의사항
보너스의 경우 보너스 파일을 새로 만들어야 하고 헤더로 새로 만들어서 추가를 해줘야한다.
파일 디스크립터
유닉스 시스템에 존재하는 모든 것은 파일로써 관리가 되고 이러한 파일들을 관리하고 접근할때 파일 디스크립터
를 이용하게 된다.
기본적으로 할당되는 파일 디스크립터
0 : 표준 입력
1 : 표준 출력
2 : 표준 에러
우리가 생성하는 파일 디스크립터들은 3번부터 차례대로 할당
문제를 이해해보자..
Hello every one~
My name is hyson!
위와 같은 파일을 gnl을 통해 만나면 첫 반환값은 첫 개행문자("\n")을 만나기 전인 Hello every one~
이 출력되고 그 다음 출력을 할때에는 My name is hyson!
이 출력되게 만들어야 하는듯.
댕글링 포인터 조심
테스터
아무것도 적혀있지 않은 빈 파일을 읽었을 때 line에 할당을 해야하나?
line에 빈 문자열을 할당하고 0을 반환한다.
100만 까지는 되는데 1000만 부터는 Segmentation fault (core dumped)가 뜬다. (환경마다 다름)
자동변수는 stack 영역에 저장되는데, 보통 스택 사이즈가 윈도우는 1메가, 리눅스는 8메가로 설정되어있다.만약에
char buf[BUFFER_SIZE + 1];
라고 선언하고 여기에 스택 사이즈보다 큰 수를 받으면 스택 오버플로우가 생길 수 있다
정적
변수로 선언하여 데이터 영역에 잡는다.전역
변수로 선언하여 데이터 영역에 잡는다.malloc
등을 사용, 동적 할당하여 힙 영역에 잡는다.