get_next_line을 구현하기 앞서서 문자출력에 관한 원리와 함수들을 이용해보고 장단점을 느껴본다.
1. 정적변수(wiki)
"기억 장소가 콜 스택에서 할당 및 할당 해제되는, 수명이 더 짧은 자동 변수(지역 변수가 일반적으로 자동임)와는 반대되는 개념이다. 즉, 기억 장소가 힙 메모리에 동적 할당되는 객체와 반의어이다. 정적 메모리 할당은 일반적으로 관련 프로그램을 실행하기 앞서 컴파일 시간에 메모리를 할당하는 것을 일컬으며 이는 메모리가 런타임 중에 필요할 때 할당되는 동적 메모리 할당이나 자동 메모리 할당과는 다르다."[1]
위 그림에서도 보듯이, 전역변수와 정적변수는 프로그램이 끝날 때 까지 메모리가 유지된다. 둘의 차이점은 정적변수는 함수내에서만 호출하여 사용할 수 있다.
전역변수와 정적변수와 달리 메모리를 할당받아야하는 변수에는 할당받는 종류에 따라 두가지로 나뉘게된다.
자동메모리할당과 동적메모리할당이다.
지역변수는 자동메모리할당이고, 함수내에서 쓰임을 다하면 이후에 메모리가 자동으로 해제되는 변수이다.
동적메모리할당은 c언어에서 malloc함수를 이용하는 경우를 말한다.
프로그래밍 언어로 문서를 다룰때는 저수준 파일입출력과 고수준 파일입출력이 있다.[3]
코딩도장에 있는 고수준 파일 입출력에 있는 함수들을 다뤄봄으로써, 그 쓰임을 이해하고자한다.[2]
(대충 느낌만 봐서 업로드할 내용은 없다.)
1.https://en.wikipedia.org/wiki/Static_variable
'42cursus > get-next-line' 카테고리의 다른 글
개행으로 끝나느냐, 개행으로 끝나지 않느냐 (0) | 2020.07.22 |
---|---|
get_next_line(bonus) (0) | 2020.07.11 |
get_next_line(mandatory) (0) | 2020.07.02 |