목차

목차
감수자 서문 = 4
역자 서문 = 6
추천의 글 = 8
저자 서문 = 10
chapter 01 소개와 핵심 개념
 1 시스템 프로그래밍 = 24
 2 API와 ABI = 28
 3 표준 = 30
 4 리눅스 프로그래밍 개념 = 33
 5 시스템 프로그래밍을 시작하며 = 51
chapter 02 파일 입출력
 1 파일 열기 = 55
 2 read()로 읽기 = 61
 3 write()로 쓰기 = 66
 4 동기식 입출력 = 71
 5 직접 입출력 = 76
 6 파일 닫기 = 77
 7 lseek()으로 탐색하기 = 78
 8 위치를 지정한 읽기와 쓰기 = 81
 9 파일 잘라내기 = 83
 10 다중 입출력 = 84
 11 커널 내부 = 89
 12 결론 = 103
chapter 03 버퍼 입출력
 1 사용자 버퍼 입출력 = 106
 2 표준 입출력 = 108
 3 파일 열기 = 110
 4 파일 기술자로 스트림 열기 = 111
 5 스트림 닫기 = 112
 6 스트림에서 읽기 = 113
 7 스트림에 쓰기 = 117
 8 버퍼 입출력을 활용하는 예제 프로그램 = 120
 9 스트림 탐색하기 = 122
 10 스트림 강제 출력(버퍼 비우기) = 124
 11 오류와 EOF = 125
 12 관련된 파일 기술자 얻기 = 126
 13 버퍼 제어하기 = 127
 14 스레드 안전 = 129
 15 표준 입출력 비판 = 132
 16 결론 = 133
chapter 04 고급 파일 입출력
 1 이합/집산 입출력 = 136
 2 epoll 인터페이스 = 143
 3 파일을 메모리에 사상하기 = 150
 4 일반 파일 입출력을 위한 조언 = 166
 5 동기화, 동기식, 비동기식 연산 = 170
 6 입출력 스케줄러와 성능 = 173
 7 결론 = 188
chapter 05 프로세스 관리
 1 프로세스 ID = 190
 2 새로운 프로세스 실행하기 = 193
 3 프로세스 종료하기 = 202
 4 자식 프로세스 종료 기다리기 = 206
 5 사용자와 그룹 = 220
 6 세션과 프로세스 그룹 = 226
 7 데몬 = 232
 8 결론 = 235
chapter 06 고급 프로세스 관리
 1 프로세스 스케줄링 = 238
 2 프로세서 양보하기 = 343
 3 프로세스 우선순위 = 247
 4 프로세서 친화도 = 251
 5 실시간 시스템 = 256
 6 자원 제한 = 273
chapter 07 파일과 디렉터리 관리
 1 파일과 메타자료 = 282
 2 디렉터리 = 300
 3 링크 = 315
 4 파일 복사와 이동 = 321
 5 디바이스 노드 = 324
 6 대역 외 통신 = 327
 7 파일 사건 감시하기 = 329
chapter 08 메모리 관리
 1 프로세스 주소 공간 = 342
 2 동적 메모리 할당하기 = 345
 3 자료 세그먼트 관리하기 = 358
 4 익명 메모리 사상 = 359
 5 고급 메모리 할당 = 364
 6 메모리 할당 디버깅 = 367
 7 스택 기반 할당 = 369
 8 메모리 할당 메커니즘 선택하기 = 373
 9 메모리 조작하기 = 374
 10 메모리 잠그기 = 380
 11 임기응변 할당 전략 = 385
chapter 09 시그널
 1 시그널 개념 = 390
 2 기초적인 시그널 관리 = 397
 3 시그널 보내기 = 404
 4 재진입 가능성 = 408
 5 시그널 집합 = 410
 6 시그널 차단하기 = 412
 7 고급 시그널 관리 = 414
 8 페이로드와 더불어 시그널 보내기 = 422
 9 결론 = 424
chapter 10 시간
 1 시간을 표현하는 자료 구조 = 429
 2 POSIX 시계 = 433
 3 현재 시각 얻기 = 435
 4 현재 날짜와 시각 설정하기 = 438
 5 시간 다루기 = 441
 6 시스템 시계 조율 = 443
 7 잠들기와 기다리기 = 447
 8 타이머 = 455
부록 = 465
참고 문헌 = 481
찾아보기 = 486