728x90
728x90
- [ 프로그래밍/42 Gyeongsan ]Get Next Line - 한 줄씩 읽는 것은 너무 지루하다2025-03-16 18:17:44들어가며get_next_line 프로젝트는 파일 디스크립터로부터 한 번 호출에 한 줄씩 읽어들이는 함수를 구현하는 과제이다. 42 과정에서 파일 I/O와 메모리 관리, static 변수 활용 등을 심도 있게 훈련한다[^1]. 이 글에서는 해당 과제를 성공적으로 수행하기 위해 필요한 사전 지식을 정리하고, 실제 평가 기준을 고려한 모범 구현 방식과 고급 기법을 단계별로 분석한다. 1. 파일 입출력 기초 및 최적화 기법파일 디스크립터(FD)는 유닉스 계열 시스템에서 열린 파일을 가리키는 비음수 정수 식별자이다[^2][^3]. 프로세스마다 표준 입출력에 해당하는 0, 1, 2번 FD가 있다(각각 stdin, stdout, stderr). 그 외에 open() 호출을 통해 파일을 열면 사용되지 않은 새로운 FD..
- [ 프로그래밍/CS Essentials ]CS:APP Malloc Lab2024-04-15 00:57:27들어가며크래프톤 정글 4기에서 구현해야 했던 Malloc Lab을 이해하기 위해 알아야 했던 사전 지식을 정리해본다.가상 메모리컴퓨터에서 프로그램이 사용하는 메모리 공간을 실제 물리적 메모리보다 크게 만들어주는 기술이다. 이를 통해 컴퓨터는 실제 메모리보다 많은 데이터를 처리한다.가상 메모리는 컴퓨터의 하드디스크 일부를 마치 메모리처럼 사용하게 해준다.실제 메모리는 제한적인데, 이 기술을 사용하면 마법처럼 메모리가 더 커진 것처럼 사용할 수 있다.페이징가상 메모리를 작은 조각들로 나누는 방식으모 이 작은 조각들을 '페이지'라고 부른다.컴퓨터는 이 페이지들을 필요할 때마다 실제 메모리로 가져오거나 실제 메모리에서 다시 하드디스크로 옮긴다.이렇게 하면, 실제 사용 데이터만 메모리에 있기 때문에 효율적인 메모..
728x90
728x90