C언어 정리
C언어 학습의 필요성리눅스 커널은 C로 작성되어 있습니다. 따라서 커널의 구조와 동작 방식을 이해하려면 C 언어에 대한 지식이 필요합니다.추상화 언어의 최적화 가능I/O 성능과 버퍼링 이해 가능: C를 통해 버퍼, 블로킹/논블로킹 I/O, 파일 디스크립터, select/poll 등 성능과 밀접한 개념 이해메모리, 포인터, 시스템 콜, 버퍼링, 프로세스/스레드 같은 개념을 C로 직접 경험하면,JVM·GC 내부 동작네트워크 I/O 병목대용량 데이터 처리 최적화성능 튜닝이런 영역에서 문제를 더 깊이 이해하고 해결할 수 있는 기반이 생깁니다. 포인터란?포인터(pointer)는 메모리 주소를 저장하는 변수입니다. 포인터기호& : 주소 연산자, ~의 주소를 구해라.* : 역참조 연산자, 그 주소에 있는 값을 가..
I/O 시스템과 스트림
UNIX의 철학 : 모든 것은 파일이다의 의미진짜 전부 파일이라는 뜻이 아니라,운영체제가 그것들을 '파일처럼 다룰 수 있게 만든다'는 의미입니다.즉, 운영체제가 다양한 자원을 파일 인터페이스로 추상화했다는 뜻 자원 종류설명실제 파일인가?파일처럼 다뤄지는가? (read, write, FD 사용 등)file.txt디스크 상의 실제 파일✅ 예✅ 예/dev/null쓰면 버리고, 읽으면 EOF 반환하는 특수 장치❌ 아니오✅ 예/dev/sda, /dev/tty0하드디스크, 터미널 등 물리 장치❌ 아니오✅ 예소켓 (AF_INET)TCP, UDP 같은 네트워크 통신❌ 아니오✅ 예stdin, stdout, stderr표준 입출력 스트림 (fd = 0, 1, 2)❌ 아니오✅ 예 파일인터페이스란진짜 물리적 파일이 아니더라..