모두를 위한 리눅스 프로그래밍
도서명:모두를 위한 리눅스 프로그래밍
저자/출판사:아오키,미네로/제이펍
쪽수:416쪽
출판일:2018-11-08
ISBN:9791188621408
목차
제I부 리눅스의 구조
제1장 리눅스 프로그래밍 시작하기 ........ 3
1.1 책의 개요 4
1.2 프로그래밍 환경 준비 8
1.3 gcc를 사용한 빌드(1) 10
1.4 gcc를 사용한 빌드(2) 13
1.5 커맨드라인 인자 16
1.6 개발 환경 이야기 20
1.7 정보를 얻는 방법 22
제2장 리눅스 커널의 세계 ........ 24
2.1 운영체제 25
2.2 라이브러리 30
제3장 리눅스의 세 가지 중요 개념 ........ 33
3.1 파일 시스템 34
3.2 프로세스 39
3.3 스트림 41
3.4 리눅스의 세 가지 중요 개념 정리 45
제4장 리눅스와 사용자 ........ 46
4.1 사용자와 그룹 47
4.2 셸과 단말 55
제II부 리눅스 프로그래밍의 근간
제5장 스트림 관련 시스템 콜 ........ 63
5.1 이번 장에서 다루는 내용 64
5.2 파일 디스크립터 65
5.3 표준 입력, 표준 출력, 표준 에러 출력 66
5.4 스트림 읽기 및 쓰기 69
5.5 파일 열기 72
5.6 cat 명령어 만들기 75
5.7 기타 시스템 콜 83
5.8 연습문제 87
제6장 스트림 관련 라이브러리 함수 ........ 88
6.1 stdio 89
6.2 바이트 단위 입출력 93
6.3 stdio로 cat 명령어 만들기 96
6.4 문자열 입출력 98
6.5 고정 길이 입출력 105
6.6 파일 오프셋 작업 107
6.7 파일 디스크립터와 FILE 타입 109
6.8 버퍼링 작업 111
6.9 EOF와 에러 112
6.10 stdio의 동작 확인하기 114
6.11 연습문제 117
제7장 head 명령어 만들기 ........ 118
7.1 head 명령어 만들기 119
7.2 옵션 파싱 125
7.3 gdb를 사용한 디버깅 134
7.4 연습문제 140
제8장 grep 명령어 만들기 ........ 141
8.1 grep 명령어 만들기 142
8.2 한글 문자열 처리와 국제화 149
8.3 연습문제 156
제9장 리눅스의 디렉터리 구조 ........ 157
9.1 기본적인 구조 158
9.2 /usr 디렉터리 160
9.3 /var 디렉터리 163
9.4 루트 밑의 주요 디렉터리 165
9.5 디렉터리를 구분하는 기준 169
제10장 파일 시스템 관련 API ........ 170
10.1 디렉터리 내용 읽어 들이기 171
10.2 디렉터리 만들기 176
10.3 디렉터리 삭제하기 180
10.4 하드 링크 182
10.5 심볼릭 링크 186
10.6 파일 삭제 189
10.7 파일 이동 191
10.8 메타 정보 획득하기 193
10.9 메타 정보 변경하기 198
10.10 파일 시스템과 스트림 202
10.11 연습문제 203
제11장 프로세스와 하드웨어 ........ 204
11.1 프로세스란 무엇인가? 205
11.2 메모리 관리 관련 API 215
11.3 프로그램이 완성될 때까지 218
11.4 연습문제 223
제12장 프로세스 관련 API ........ 224
12.1 기본적인 프로세스 API 225
12.2 프로세스의 생애 231
12.3 파이프 235
12.4 프로세스 관계 240
12.5 연습문제 245
제13장 시그널 관련 API ........ 246
13.1 시그널 247
13.2 시그널 포착하기 249
13.3 시그널 전송 256
13.4 Ctrl + C 257
13.5 연습문제 259
제14장 프로세스 환경 ........ 260
14.1 현재 디렉터리 261
14.2 환경 변수 264
14.3 자격 증명 267
14.4 사용자와 그룹 271
14.5 프로세스가 사용하는 리소스 273
14.6 날짜와 시간 275
14.7 로그인 281
14.8 연습문제 284
제III부 리눅스 네트워크 프로그래밍
제15장 네트워크 프로그래밍의 기초 ........ 287
15.1 인터넷의 구조 288
15.2 호스트 이름과 리졸버 292
15.3 소켓 API 295
15.4 이름 해결 299
15.5 daytime 클라이언트 작성 301
15.6 연습문제 306
제16장 HTTP 서버 만들기 ........ 307
16.1 WWW와 HTTP 308
16.2 HTTP 312
16.3 HTTP 서버 개략 315
16.4 서비스 개시까지 320
16.5 struct HTTPRequest 322
16.6 요청 읽어 들이기 325
16.7 struct FileInfo 331
16.8 응답 출력하기 334
16.9 동작 테스트 338
제17장 본격적인 HTTP 서버 구현 ........ 340
17.1 이번 장에서 수행할 내용 341
17.2 스스로 네트워크에 접속하기 344
17.3 복수 접속을 병렬 처리 348
17.4 데몬 만들기 353
17.5 로그 기록 355
17.6 chroot()로 안정성 높이기 360
17.7 완성! 364
제18장 이 책을 다 읽은 후 ........ 365
18.1 리눅스/유닉스 전반 366
18.2 커널이 어떻게 구현되었는지 알기 위한 책 367
18.3 이식성 368
18.4 GUI 프로그래밍 370
18.5 단말 조작 372
18.6 make 374
18.7 셸 스크립트 376
18.8 버전 관리 시스템 377
18.9 도큐먼트 378
18.10 패키지와 배포 379
APPENDIX 부록 ........ 380
A.1 gcc의 주요 커맨드라인 옵션 381
A.2 참고 문헌 383