형식문자열? 포맷? 형식태그? 서식지정자? 헷갈리는 printf 함수의 옵션들을 정리해보았다.
처음에는 함수를 동작하게 만드는 것에 집중해서 정신 없이 코드를 짰다면, 완성된 후에는 코드를 '눈에 잘 들어오게' 정리하고 싶다는 욕심이 생긴다.
이 프로젝트의 목적은 file descriptor로부터 읽혀진, line(개행문자 기준)을 반환하는 함수를 코드화 하는 것이다.
Norminette는 42 네트워크에서 소스 코드가 학교의 규범을 준수하는지 확인하기 위한 도구이다.코로나19로 42 클러스터 시설이 일시적으로 폐쇄된 것을 감안하여, 노미네트에 원격으로 접속할 수 있도록 하기로 했다고 한다.
ft_printf 과제를 진행하려면 이 전 과제로 만든 libft 정적 라이브러리를 사용해야한다. 어떻게 ft_printf 소스파일과 libft.a 라이브러리 파일을 함께 컴파일할 수 있는지 정리해보았다.
ar 명령은 정적 라이브러리를 생성할 때뿐만 아니라, 정적 라이브러리의 기능을 부분적으로 변경하고자 할 경우에도 사용할 수 있다.
가만보면 printf 라는 함수는 인자를 1개만 넣어도 되고, 2개만 넣어도 되고, 3개, 4개 그 이상을 넣어도 문제없이 돌아간다. 이것을 가능하게 하는 가변인자(Variadic Arguments)에 대해 정리해보았다.
하지만 정적변수는 전역변수와 동일하게 컴파일시 메모리에 할당되며, 프로그램 종료시 메모리가 해제된다. 따라서 정적 변수는 전역변수처럼 변수의 범위를 벗어나는 경우에도 값을 유지하는 속성을 가지고 있다.
libft 프로젝트의 bonus part 함수들을 구현하면서 메모했던 내용들을 정리해두었다. 이 라이브러리의 함수들은 꾸준히 업데이트 되고 있기 때문에 가장 최신의 코드는 여기 깃헙저장소를 참고...
libft 프로젝트의 part1 함수들을 구현하면서 메모했던 내용들을 정리해두었다. 이 라이브러리의 함수들은 꾸준히 업데이트 되고 있기 때문에 가장 최신의 코드는 여기 깃헙저장소를 참고...
libft 프로젝트의 part1 함수들을 구현하면서 메모했던 내용들을 정리해두었다. 이 라이브러리의 함수들은 꾸준히 업데이트 되고 있기 때문에 가장 최신의 코드는 여기 깃허브 저장소를 참고...
42SEOUL에서는 필요하다고 생각되는 함수라면 직접 구현해 사용해야 한다. 이 프로젝트를 통해 C 표준 함수들을 재구현하면서 함수의 작동 원리와 사용법, 그리고 C언어에서 데이터와 그에 필요한 메모리를 어떻게 효율적으로 관리하고 다룰 수 있는지 배울 수 있었다.
Makefile을 사용하는 이유는 위와 같은 복잡한 과정을 생략할 수 있어서이기도 하지만, Makefile이 제공하는 강력한 기능 중 하나인 Incremental build 를 사용하기 위해서다.
단일 연결리스트에서 삽입과 삭제를 통해 head 포인터의 값을 변화시킬 수 있다.이때, 호출 함수의 포인터변수가 참조하는 객체를 피호출 함수에서 바꾸고자 할 경우 이중 포인터를 사용하면 된다.
리눅스에서 파일을 읽고 쓰는 방법은 저수준 파일입출력과 고수준 파일입출력으로 구분할 수 있다. 각각의 차이는 다음 표와 같고, 나는 파일 디스크럽터를 통해 파일을 다룰 수있는 가장 기본적인 OPEN, READ함수를 사용하기 위해 이 글을 정리해보았다.