- man page의 _XOPEN_SOURCE 같은 말의 뜻.
- EOF
- locale
- size_t
- thread safety
- restrict 포인터
- makefile 내부매크로
- char const
- fd max
- redirection
- control+d
- memory leaks check
- https://ko.wikipedia.org/wiki/X/Open
- https://stackoverflow.com/questions/5378778/what-does-d-xopen-source-do-mean
EOF 자체는 파일 끝을 의미한다. 매크로로 정의된 값을 사용하고, 시스템마다 실제 값은 다르지만,(보통 -1로 정의된다.) 어떠한 유효한 문자의 값과도 겹치지 않는다.
사용자의 언어, 국가뿐 아니라 사용자 인터페이스에서 사용자가 선호하는 사항을 지정한 매개 변수의 모임.
이론상 담을 수 있는 가장 큰 사이즈의 unsigned 데이터 타입.
32비트 환경에선 32비트 사이즈의 unsigned 정수형(int가 아님!), 64비트에선 64비트, 128비트에선 128비트...
하나의 함수가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드에서의 함수의 수행 결과가 올바로 나오는 것.
기본적으로 포인터 연산에선 unsigned 형을 사용한다. 표준 자체에는 char와 unsigned char의 부호 있음 / 없음 에 대한 얘기가 없기 때문에, 시스템에 따라서 문제가 생길 수 있다. 특정 시스템에서는 char의 기본이 unsigned char이기 때문.
메모리 접근 시 최적화를 위해 사용한다. 메모리가 같은 공간을 가르키지 않는다고 가정한다는 뜻.
char const == const char char const * == const char * char * const != const char *
https://wilsonmar.github.io/maximum-limits/
컴퓨팅에서 표준 스트림(stdio, stderr)을 사용자 지정 위치로 우회할 수 있는 다양한 유닉스 셸을 포함한 대부분의 명령어 인터프리터에 일반적인 명령. https://ko.wikipedia.org/wiki/%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98
= buffer flush. 터미널에선 원래 줄 단위로 읽게 되는데, ctrl d 를 입력하면 즉시 값을 전달하고 버퍼를 비워준다. 때문에 아무것도 입력하지 않고 사용하면, eof만 읽게 되고, 마치 프로그램을 종료한 것 과 비슷한 효과가 난다.
main 함수에 system("leaks a.out");